2009年7月30日 星期四

大富翁1

想完成這個遊戲程式
要先想想需要哪些功能
目前想到的是表格
棋子
棋子怎麼移動

看了書之後
找到了建立圖形的方法 如下
Set 矩形 = ActiveSheet.Shapes.AddShape(17, 180, 70, 80, 45)
第一個參數是形狀代號 後面四個參數是座標

至於移動棋子圖形的部分
還沒找到可以直接移動物件的方法
但找到了可以複製物件並傳回新複製物件參照 的方法
然後增減物件的位址
最後用Delete方法殺掉原始物件

目前這樣的想法是可行的
不過有些問題還要解決跟釐清
因為不斷複製新物件還有刪除物件
似乎程式會自動設定物件名稱
例如起始生成笑臉1 可是經過複製 移動新物件
就會生成笑臉2......移動越多 名稱編號越高
初步想到的是 應該可以加一個更改圖形命名的語法
將名稱固定為一個

另外就是移動的部分
IncrementLeft方法 明明就指水平移動
可是我在移動時發現會有誤差
似乎會有向下偏移的跡象
勉強用IncrementTop方法修正回來
可是為什麼會這樣 並不知道原因
還要再查一下

可是我覺得應該有直接移動原始圖形物件的方法

2009年7月28日 星期二

一個小想法

半夜睡覺突然在想
不知道能不能用VBA設計大富翁遊戲來玩
既然有想到
感覺上好像很難
不過我想應該可以做得出來
先慢慢研究看看好了

2009年7月27日 星期一

面試之後

每次面試之後 都換來無限空虛
昨天才再跟面試人員抱怨最近很多公司連感謝函都懶得寄了
這樣說完 今天一收信UMC就寄信來說謝謝再聯絡
也有幾家連面試都沒有 直接再見的 = =

回歸正題 昨天在火車上
我一直覺得其實我的專業考得不錯
不過英文看樣子還是非常不好

根據以前經驗跟現在比對
我真的覺得 一定是我的英文影響非常非常大
這麼多年來 報應果然一一的反撲到我身上了
這一關如果我沒有突破
以後還是會不斷遇到
看樣子需要準備買本書回來K

最近逐漸覺得老是玩玩的態度
似乎不太好
要玩就要玩真的

那這次 就玩真的吧

2009年7月26日 星期日

分點好運給我吧!!

我總覺得今年是運氣很差的一年
過年後被公司火掉了
面個試會被烏秋追殺
往年出門常下雨 今年還是一樣
拖到現在還沒找到工作(我可是個人才阿)
抱怨到此停止

雖然說是這樣 前天靖宜卻告訴我考上了沙鹿的特教師甄試了
之前他打電話要我幫忙送面試資料
因為審查地點離家裡很近
所以隨口就答應他了
沒想到送資料當天 = =
我馬上把她的照片遺失了
害我還得殺到大雅再拿一次照片
不但如此
那天 我見識到了什麼叫做流浪教師
根本不比流浪工程師差麻 = =
現場一堆擁有教師 幼教師 特教師資格的人擠滿了禮堂
光排隊就不知道要排幾個小時
中途還下大雨
我心裡只有一個感想(超.........級...不划算 我只是義務幫忙的阿)

不過 沒想到靖宜居然考上了
真是厲害又強運阿

事後有請我吃飯
不過我比較希望她能分一點好運氣給我

阿!!!又要面試了

睽違已久的面試又要到了
投了這麼多封終於有回應了
之前面試這麼多家
最後都沒有下文
超難過的!!!!!

最近更慘 投了履歷
不是完全沒有回應就是沒有缺
結果這時候德洲儀器居然打電話要我去面試
忽然讓我想起了全世界的第一塊IC
還有以前在課堂上老師介紹的TI-89計算機(根本是台掌上型電腦= =)

在這兩個影像閃過腦袋後
接著是想到這不是美商公司嗎??
我記得外商很多連開我的履歷都沒開
居然要我去面試
不過在台北
想到就有點沒力...........好遠阿

不管怎樣 明天面試加油!!!!

2009年7月22日 星期三

perl的學習中斷了嗎??

之前想說要學perl
因為我覺得正規表示法似乎很好用
而且去面試時 還有主管想找會這種語言的人
不過想要好好學這們語言還是應該要買本聖經來啃
在此之前還是先把VBA弄熟一點還有存錢買書再說

從這個主題第一篇文章發出到現在
其實我還是有找相關的書在看
不過似乎在很多功能上搞不清楚用途
至於在概念方面讀到模組之後就沒辦法在下一步理解了
而且除了拿來當成script語法用之外
我也沒有進一步的用途 最後就跟之前想學MFC的狀況一樣了
卡死 然後放棄

在這段期間其實也不是完全沒有收穫
在做VBA的學習時 也順便的看了一些VB的書
再查資料的這段期間
有些觀念逐漸被打通了

像是物件導向
以前實在是搞不清楚C++所謂的OO概念
為什麼有物件這種東西 其實也就是perl說的模組
有了物件還要繼承
繼承之間又有一大堆細節
C++書上寫的說法實在不好懂
卻在VB的書上找到很好的解釋
這些所謂的物件其實可以當作比較專業一點的程式設計師
設計好對某個主題的應用了 然後再將程式和程式碼的資訊隱藏
讓其他程設人員透過介面使用就好
使用時只要懂得透過屬性 事件 方法
去控制物件
就不需要再重頭設計
"聞道有先後 術業有專攻"
讓擅長某個領域的人去開發那個領域的物件
其他人用寫好的元件就好
所以教基本程設的書 很少說明物件的使用
因為介紹不完嘛 需要某種用途去找合適的類別
不同的應用用不同的類別
所以學完基本的程式語法後 還需要學習如何使用別人所寫的類別

還有在用VB時 雖然很方便
比起VC可以不用在意很多細節
像是變數的宣告
可是當我在寫VB語法時
卻發現C語言有很多語法功能在VB是被隱藏起來
像是指標
常常寫程式寫到一半 發現用指標操控比較方便
但是用VB就必須換一種寫法 雖然我記得VB其實還是有替代指標的方法

在實際用不同語言寫過一些範例之後
逐漸覺得C語言雖然嚴謹複雜
卻也是自由度最高的語言了
擁有最豐富的表達方式
等到VBA更熟悉一點
再回去研究MFC還有perl好了

精神又萎靡掉了

最近不知道為什麼 身體變得好重
一點都提不起精神 連吃飯也只剩下一天一餐就飽了
老媽似乎很擔心 只好跑跑步提振一點精神
消耗一點能量才能吃得下
也許這是抑鬱成疾的毛病吧
說起來 最近常有些心態怪怪的想法
應該是因為老是縮在家裡造成的後遺症
不過我真的好煩
已經足六個月沒工作了
去應徵工作依然沒有下文
下一步路該怎麼走 我一點想法也沒有
仔細想想 我這種個性越來越像
老媽口中的老爸 缺少行動的勇氣
雖然不是什麼非常不好的個性
不過一直駐足不前 死守的僅有的資源
做最小的消耗
缺乏放手一搏的勇氣
在消磨的日子裡 不斷的放眼前的機會流失
明明知道這樣子下去是不行的
不過我還是不斷的在消耗自己的人生

其實我有好多想做的事
但我卻拿不起勇氣義無反顧的投入
越長大越懦弱 越來越輸不起
於是很多東西很多事
都在稍微接觸後便放棄而沒有認真投入
說穿了就是我捨不得做投資
因為我不知道未來下一步這樣走會有什麼結果
結局會是好的嗎
萬一我的決定是錯的呢??
一這樣想 我便遲遲無法跨出去
不知道什麼時候 我能突破眼前這一步
重新再站起來
或是找到讓我前進的動力


加油阿~~~!!加油

2009年7月17日 星期五

有點突破了

在買了博碩文化引進的office即戰力系列 "經理人提升工作自動化效率的excel VBA活用技巧"這本書後,當中有很多實用的技巧和程式碼 一般的書大多以介紹語法和觀念為主 常常有一堆不知道用途的函式 ,屬性或是方法 這個系列以實用為出發 也很淺顯易懂
需要一個"active按鈕"啟動click事件
檔案系統控制
啟動檔案IO功能
字串處理
使用excel儲存格

這四個項目的要求都達到了
出乎意料的是寫出來程式碼非常的短阿
雖然還有一些需要修改或是增加的功能
不過雛形出來了 已經很接近當初看到的功能
Private Sub 載入_Click()
Dim d(30)
For num = 1 To 10
root1 = ActiveWorkbook.Path & "\" & "try" & num & ".txt"
Open root1 For Input As #1
Do Until EOF(1)
For n = 1 To 30
Input #1, d(n)
Cells(num + 5, n + 1).Value = d(n)
Next
Loop
Close #1
Next
End Sub

大致上程式的架構就是這樣
按鈕->取得要處理資料夾路徑->載入文字檔案資料
過程中還寫了一個亂數生成10個內含30筆資料檔案副程式
提供實驗
接下來只要再做細部修改就完成拉

2009年7月16日 星期四

關於CSV檔

CSV檔是很普遍的Grid式資料匯出格式,而很多人也都知道Excel可以直接將CSV檔開啟成試算表。不過稱作Comma Separated Value的CSV,除了"用逗號將值隔開"之外,還有一些進階的花式技巧。例如:
1. 如果是內含逗號的字串值,可以用雙引號將字串包起來,例如: 886,"Taipei, Taiwan"
2. 如果在雙引號中的字串中又包含了雙引號,則可以遵循VB/VBScript的慣例,用兩個雙引號代替。例如: "12'30"""-->12'30"
3. 用Excel開啟CSV時,Excel會自動判斷值的性質,進行資料轉換。比較煩的是,明明編號是007,就算用了雙引號包夾成"007",Excel還是會將它轉換成7,即使在Excel中重新調整它的儲存格式為字串,也無法還原回007。

所以,我們可以用="007"的宣告方式,強制指定字串值,Excel就不會雞婆將它轉成數字。而這個技巧還可以再延伸,甚至可以用=SUM(B2:B5)的寫法,指定儲存格的運算式。
此外Excel只接受ANSI/BIG5編碼的CSV檔,如果將CSV檔存成Unicode編碼,Excel就無法識別出逗號,而會將整列資料視為同一個值。
----------------------------------------------
另外…Excel不默認支持UTF8的CSV文件

因此excel打開utf-8中文的csv百分百會發生問題。

有兩種解決辦法:
1. 可以先用notepad打開csv,另存為ANSI編碼,再用Excel打開
2. 先打開空的Excel,然後在資料->取得外部資料->從文字檔→選擇csv文件,在導入資料對話框中選好UTF-8的編碼(你會發現默認是ANSI),就可以了。

2009年7月13日 星期一

柯南真的是越來越豪洨了

前天和朋友還有學弟妹們去看柯南"漆黑的追跡者"
雖然有不少笑點 例如
警察們開會後的閒聊 白鳥警官和千葉警官的身材變了
還有那對很壯的警官雙胞胎重悟和參悟 名字的諧音叫做三五十五
還有那位菜鳥警官居然有如此強大的運氣 靠柯南破的案子居然升官了
實在是.............(果然做人只要強運 做什麼都會往好的方向發展)
真是令人羨慕
柯南跟服部平次手機通話讓我覺得有點BL的感覺 想不到柯南也往這個領域發展了
元太頭上的圓形禿還在 讓我覺得電影版跟電視版關聯性很夠 不像其他卡通都只能當成架空的世界來看


回歸這次最令人在意的最讓人無法接受的劇情
(= =)a 黑暗組織要銷毀的記憶卡 最後居然沒交代 就讓它掉在天文台好嗎??
黑暗組織開武裝直升機大搖大擺出現在天文台 下方全是警車
哪個國家允許武裝直升機隨便在都市開火 這世界還有王法嗎
黑暗組織也太明目張膽了 如果黑暗組織這麼招搖
柯南幹嘛追查的這麼辛苦

最後補上阿笠博士的發明 實在是太神奇了>"<
柯南這次居然用博士發明的伸縮吊帶打爆武裝直升機
我要充分的懷疑其實博士是秘密組織的成員
他給柯南的那些裝備拿到軍事用途一定無可限量

2009年7月9日 星期四

讀取文字檔內容

找到了讀取文字檔內容 並且輸出到excel表格中的程式碼
Sub test1()
Open "C:\Documents and Settings\Administrator\桌面\test.txt" For Input As #1
i = 0
Do Until EOF(1)
Line Input #1, indata ' 讀入一行資料並將之指定給變數。
i = i + 1
bpos = 1 '字元指標
epos = 1
j = 0
Do
j = j + 1

epos = InStr(bpos, indata, Chr(32), vbTextCompare) '找空白字元的位址
If epos = 0 Then Exit Do
slen = epos - bpos '字串長度
Cells(i, j) = Mid(indata, bpos, slen) '從indata字串傳回特定數量字元所構成的Variant (String)。
bpos = epos + 1
Loop
Loop
Close #1
End Sub
此外,另外一種也不錯
Sub test2()
Dim Filename As String
Dim epos As Variant
ChDir "C:\Documents and Settings\Administrator\桌面"
LogFileName = Application.GetOpenFilename(FileFilter:="文字檔(*.txt),*.txt", Title:="請選取檔案")
If TypeName(LogFileName) = "Boolean" Then Exit Sub '按取消時
Open LogFileName For Input As #1
i = 0

Do Until EOF(1)
Line Input #1, indata
i = i + 1
epos = Split(indata, Chr(32), , vbTextCompare) '取得字串至空白
rCount = UBound(epos) '取得陣列維度最大值
Cells(i, 1).Resize(, rCount) = epos
Loop
Close #1
End Sub

test2載入資料時似乎全部資料都會判斷為字串
還要再查一下原因
補充:將chr(32)改為chr(9)則 資料間格無論為 tab 或空格均可讀取資料