如何把TXT檔轉出 |
答題得分者是:channel
|
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
===================引 用 channel 文 章=================== 可以的,可用TStringList讀檔… 不過您可能要說明一下您的txt的格式為何嗎?這樣才有辦法幫您… ===================引 用 solid098 文 章=================== 請問~DELPHI有方法可以讀入TXT檔寫成欄位格式,並INSERT到資料庫內嗎!? 那我想在請教各問題,我是否可以把TXT檔先讀取到類似像dbgrid的物件內,然後再做DB的INSERT動作嗎?
編輯記錄
solid098 重新編輯於 2007-04-20 13:49:33, 註解 無‧
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
===================引 用 channel 文 章=================== 可以的 讀到DBGrid需要有DataSet,您可使用TClientDataSet元件 透過讀取到的TXT檔寫入TClientDataSet暫存,DBGrid再連到TClientDataSet即可 ===================引 用 solid098 文 章=================== 那我想在請教各問題,我是否可以把TXT檔先讀取到類似像dbgrid的物件內,然後再做DB的INSERT動作嗎? S/N; 掃描時間 ; 變動時間 ; 01 ; 00:00:00,0 ; 00:00:00,0 ; 02 ; 00:35:53,1 ; 00:45:43,1 ; 03 ; 00:00:00, ; 00:00:00, ; 這是我的TXT檔,"S/N,掃描時間,變動時間"各為不同欄位,分號為分割,我該如何把這些檔案寫成欄位格式,並寫入DBGrid內,可以麻煩把程式後面加上註解,不好意思麻煩一下 我還是DELPHI的初學者,想多了解一點,麻煩 |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
===================引 用 syntax 文 章=================== 這跟你是否為 delphi 初學者無關 跟你的設計東西能力有關,不一定是設計程式,只要是設計,都需要這種能力 你需要比較好的邏輯思考,與多看、多聽來強化你的設計能力 看電影是一種方式,散步也是,很多方法都可以,只要你無處不學 昏倒,謝謝你給我的意見,就因為是初學者,所以才要多看人家的程式,加以訓練我的程式邏輯思考能力,還是謝謝你給我的意見^^ 我現在只是不了解DELPHI的一些寫法所以想多知道一點 |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject); var aSL1, aSL2: TStringList; I, J: Integer; aStr: String; begin aSL1 := TStringList.Create;//讀行 aSL2 := TStringList.Create;//讀列 try aSL1.LoadFromFile('C:\test.txt');//載入文字檔 for I := 0 to aSL1.Count-1 do begin aStr := StringReplace(aSL1.Strings[I], ';', ',', [rfReplaceAll]);//將每一行的分號換為逗號,因為StringList的CommaText是用逗號作區隔 aSL2.CommaText := aStr; for J := 0 to aSL2.Count-1 do ShowMessage(aSL2.Strings[J]);//這樣子就可以讀出每一列(欄位)的值 end; finally FreeAndNil(aSL1); FreeAndNil(aSL2); end; end; StringList的CommaText是用逗號作區隔好像可以下程式用其他的符號(例:分號)作區隔,不過小弟忘了怎麼做了… 所以才會用StringReplace將分號改為逗號… ===================引 用 solid098 文 章=================== S/N; 掃描時間?;? 變動時間 ; 01? ; 00:00:00,0 ; 00:00:00,0 ; 02? ; 00:35:53,1 ; 00:45:43,1 ; 03? ; 00:00:00,???;? 00:00:00,??; 這是我的TXT檔,"S/N,掃描時間,變動時間"各為不同欄位,分號為分割,我該如何把這些檔案寫成欄位格式,並寫入DBGrid內,可以麻煩把程式後面加上註解,不好意思麻煩一下 我還是DELPHI的初學者,想多了解一點,麻煩
------
~小弟淺見,參考看看~ |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
呵呵
不用昏倒 久了你就會瞭解 在論壇上,很多人都說這不會、那不會 但依據多寡來分,可分成 1.懶得學習 2.方法法則不懂 3.最後才是程式語言本身語法不懂 根據你的問題,可以發現,你連如何安排資料都不清楚 表示,你在資料結構上的功力不足,這根程式無直接關連,跟語言更無關係 比資料幻化成數據,填到 TXT 檔內,只需要筆記本,就做得來 用程式,也不過是將相同步驟寫成程式碼,不需要用到很高深的函數,基本函數,就可以做到 你連如何應用基本函數都不知道,表示,你書不看 如果你都知道基本函式,但不會用,就如我所言,設計能力需要加強 具備基本功力以後,再來用元件,才會真的得心應手 大家都以為,Delphi 是元件堆砌工具,只要會堆,一定可以寫出程式,但不是如此,只會堆者,寫出的往往是廢物 Delphi 是一項很強的工具,你不會用,不要怪自己是新手,因為程式設計上,有很多是不與語言相依的 設計能力就是,多看多思考日常身活中的各種作法,才是最佳的訓練方式,因為那才是大家做出來的精華-「解決事情的方法」 光看程式範例,ㄟ,進步有限,因為好的範例不多 而邏輯思考能力,建議你去看,演算法方面的書,效果比看單一程式有用,我個人是看過五本,覺得看懂得不多,尤以其中三本原文,很多地方,我根本不知所云 但所得已經很驚人,可以讓很多原本不知道如何去規劃演算方式的問題,有新的想法,而且是有用的想法 你的問題 1. 解決將實際資料安排成文字格式,有系統的放置 2. 學習讀檔 3. 讀進資料,既格式是你安排,到此,沒理由不會讀 4. 處理 我是覺得,你不是不會,是不肯做,假裝不會,自己騙自己,所以真的就不會了 建議你,反正是電腦,放手去做,大不了,刪除重寫 S/N; 掃描時間 ; 變動時間 ; 01 ; 00:00:00,0 ; 00:00:00,0 ; 02 ; 00:35:53,1 ; 00:45:43,1 ; 03 ; 00:00:00, ; 00:00:00, ; 轉到 TXT 真的難嗎? 你不會這樣做嗎?沒想過?這樣你還認為你的能力,不需要加強? 一個呆子式的直接作法 SN=01 ST=00:00:00,0 MT=00:00:00,0 SN=02 ST=00:35:53,1 MT=00:45:43,1 ........................... 一行放一個欄位,三行為一筆資料,一次讀三行 這是基本功,更好的作法,等你會基本功練足了再說吧 讀檔,所有入門書,都會教,你不看書的吧! 那你就直接用大家說的 TStringList.LoadFromFile / Memo.Loadfromfile / RichEdit.LoadfromFile 即可 讀進來,要寫入DBGrid,請先去看 DBGrid 的說明,瞭解用法 再將讀進來的東西,一行為一攔,丟到欄位去 最後,打完收功 程式寫法百百種,但實際上只有一種,因為程式語法,關鍵自、函數,就是那樣 會有千萬種變化,是演算法則 無奈,你兩者都缺 通常都是不看書的結果,知識就在那,你不自學,來這裡,聽到的都是片面,只會成為三角貓功夫 如果你先自學,再來問,就變成補強知識,可成為強者 但補強知識者,會先 說明已經學到那個階段 瞭解了哪些作法 有程式者,會貼出 做後才針對問題核心,提出疑問 這樣,有相關經驗者,馬上可以做出建議 而不是幫你補充基本功就應該學習到的知識 我只是覺得你現階段欠缺的不是 Delphi 的知識,是設計的能力,是將資料轉成抽象資料結構的能力 覺得你應該多嘗試,光看,是能學到多少,你也知道 若是你有做,哪就應該說清楚,說出來,大家好學習,或互相切磋,不要像有些假新手之藉口推託問的問題比新手還糟糕 當然,你後來的問題很清楚,只是,你有盲點沒看到,程式知識,是需要學習,沒錯,但不是你真正的問題 改善設計能力,可以讓你少問很多像初學者的問題,改問有深度的問題 就算你沒學過的方向,提問時,問法也會比較有深度 而不是像你第一次「請問~DELPHI有方法可以讀入TXT檔寫成欄位格式,並INSERT到資料庫內嗎!?」這樣一行 至少會像 後面「我想在請教各問題,我是否可以把TXT檔先讀取到類似像dbgrid的物件內,然後再做DB的INSERT動作嗎? S/N; 掃描時間 ; 變動時間 ; 01 ; 00:00:00,0 ; 00:00:00,0 ; 02 ; 00:35:53,1 ; 00:45:43,1 ; 03 ; 00:00:00, ; 00:00:00, ; 這是我的TXT檔,"S/N,掃描時間,變動時間"各為不同欄位,分號為分割,我該如何把這些檔案寫成欄位格式,並寫入DBGrid內,可以麻煩把程式後面加上註解,不好意思麻煩一下」 這樣,比較明確 讓大家知道你要問 1. 將資料轉成抽象資料結構 2. 讀出/寫入 TXT 檔的方法(但又無奈,搜尋就有,不需問吧) 3. 寫入DBGrid (這 Help 檔就有,也不需問) 所以我歸納,你比較欠缺的是「設計能力」 建議你資料結構,與演算法書籍,好好看一看 起碼好好看過一本 Delphi 的書,從頭到尾,一字不漏,三次以上 以下是不錯的選擇,如果你還找得到該書的話 1. Delphi 4 Unleashed 2. Delphi 5 Developer's Guide 還有 Delphi 自帶的說明文件 Object Pascal Language Guide 以上是建議,成功方法百百種,你看看就好 因為你說:「 我現在只是不了解DELPHI的一些寫法所以想多知道一點」 所以我就廢話多了一點,如看不慣,那就當沒看過,別因在下胡言亂語,壞了你的修養 |
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
===================引 用 syntax 文 章=================== 呵呵 不用昏倒 久了你就會瞭解 在論壇上,很多人都說這不會、那不會 但依據多寡來分,可分成 1.懶得學習 2.方法法則不懂 3.最後才是程式語言本身語法不懂 根據你的問題,可以發現,你連如何安排資料都不清楚 表示,你在資料結構上的功力不足,這根程式無直接關連,跟語言更無關係 比資料幻化成數據,填到 TXT 檔內,只需要筆記本,就做得來 用程式,也不過是將相同步驟寫成程式碼,不需要用到很高深的函數,基本函數,就可以做到 你連如何應用基本函數都不知道,表示,你書不看 如果你都知道基本函式,但不會用,就如我所言,設計能力需要加強 具備基本功力以後,再來用元件,才會真的得心應手 大家都以為,Delphi 是元件堆砌工具,只要會堆,一定可以寫出程式,但不是如此,只會堆者,寫出的往往是廢物 Delphi 是一項很強的工具,你不會用,不要怪自己是新手,因為程式設計上,有很多是不與語言相依的 設計能力就是,多看多思考日常身活中的各種作法,才是最佳的訓練方式,因為那才是大家做出來的精華-「解決事情的方法」 光看程式範例,ㄟ,進步有限,因為好的範例不多 而邏輯思考能力,建議你去看,演算法方面的書,效果比看單一程式有用,我個人是看過五本,覺得看懂得不多,尤以其中三本原文,很多地方,我根本不知所云 但所得已經很驚人,可以讓很多原本不知道如何去規劃演算方式的問題,有新的想法,而且是有用的想法 你的問題 1. 解決將實際資料安排成文字格式,有系統的放置 2. 學習讀檔 3. 讀進資料,既格式是你安排,到此,沒理由不會讀 4. 處理 我是覺得,你不是不會,是不肯做,假裝不會,自己騙自己,所以真的就不會了 建議你,反正是電腦,放手去做,大不了,刪除重寫 S/N; 掃描時間?;? 變動時間 ; 01? ; 00:00:00,0 ; 00:00:00,0 ; 02? ; 00:35:53,1 ; 00:45:43,1 ; 03? ; 00:00:00,???;? 00:00:00,??; 轉到 TXT 真的難嗎? 你不會這樣做嗎?沒想過?這樣你還認為你的能力,不需要加強? 一個呆子式的直接作法 SN=01 ST=00:00:00,0 MT=00:00:00,0 SN=02 ST=00:35:53,1 MT=00:45:43,1 ........................... 一行放一個欄位,三行為一筆資料,一次讀三行 這是基本功,更好的作法,等你會基本功練足了再說吧 讀檔,所有入門書,都會教,你不看書的吧! 那你就直接用大家說的 TStringList.LoadFromFile / Memo.Loadfromfile / RichEdit.LoadfromFile 即可 讀進來,要寫入DBGrid,請先去看 DBGrid 的說明,瞭解用法 再將讀進來的東西,一行為一攔,丟到欄位去 最後,打完收功 程式寫法百百種,但實際上只有一種,因為程式語法,關鍵自、函數,就是那樣 會有千萬種變化,是演算法則 無奈,你兩者都缺 通常都是不看書的結果,知識就在那,你不自學,來這裡,聽到的都是片面,只會成為三角貓功夫 如果你先自學,再來問,就變成補強知識,可成為強者 但補強知識者,會先 說明已經學到那個階段 瞭解了哪些作法 有程式者,會貼出 做後才針對問題核心,提出疑問 這樣,有相關經驗者,馬上可以做出建議 而不是幫你補充基本功就應該學習到的知識 我只是覺得你現階段欠缺的不是 Delphi 的知識,是設計的能力,是將資料轉成抽象資料結構的能力 覺得你應該多嘗試,光看,是能學到多少,你也知道 若是你有做,哪就應該說清楚,說出來,大家好學習,或互相切磋,不要像有些假新手之藉口推託問的問題比新手還糟糕 當然,你後來的問題很清楚,只是,你有盲點沒看到,程式知識,是需要學習,沒錯,但不是你真正的問題 改善設計能力,可以讓你少問很多像初學者的問題,改問有深度的問題 就算你沒學過的方向,提問時,問法也會比較有深度 而不是像你第一次「請問~DELPHI有方法可以讀入TXT檔寫成欄位格式,並INSERT到資料庫內嗎!?」這樣一行 至少會像 後面「我想在請教各問題,我是否可以把TXT檔先讀取到類似像dbgrid的物件內,然後再做DB的INSERT動作嗎? S/N; 掃描時間?;? 變動時間 ; 01? ; 00:00:00,0 ; 00:00:00,0 ; 02? ; 00:35:53,1 ; 00:45:43,1 ; 03? ; 00:00:00,???;? 00:00:00,??; 這是我的TXT檔,"S/N,掃描時間,變動時間"各為不同欄位,分號為分割,我該如何把這些檔案寫成欄位格式,並寫入DBGrid內,可以麻煩把程式後面加上註解,不好意思麻煩一下」 這樣,比較明確 讓大家知道你要問 1. 將資料轉成抽象資料結構 2. 讀出/寫入 TXT 檔的方法(但又無奈,搜尋就有,不需問吧) 3. 寫入DBGrid (這 Help 檔就有,也不需問) 所以我歸納,你比較欠缺的是「設計能力」 建議你資料結構,與演算法書籍,好好看一看 起碼好好看過一本 Delphi 的書,從頭到尾,一字不漏,三次以上 以下是不錯的選擇,如果你還找得到該書的話 1. Delphi 4 Unleashed 2. Delphi 5 Developer's Guide 還有 Delphi 自帶的說明文件 Object Pascal Language Guide 以上是建議,成功方法百百種,你看看就好 因為你說:「 我現在只是不了解DELPHI的一些寫法所以想多知道一點」 所以我就廢話多了一點,如看不慣,那就當沒看過,別因在下胡言亂語,壞了你的修養 感謝你的意見~~你推薦的書我會去找看看~~設計方面也許真的需要磨練囉!!謝謝你的意見囉~~ |
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |