全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1564
推到 Plurk!
推到 Facebook!

請教I/O存取特殊形態檔案之問題

答題得分者是:timhuang
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-25 00:37:58 IP:63.84.xxx.xxx 未訂閱
請教各位前輩﹒ 利用I/O存取特殊形態檔案時(使用TStringGrid元件來顯示資料)﹐是否具有SQL查詢語言或普通查詢替換的方法﹒ 謝謝﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-25 07:39:52 IP:218.163.xxx.xxx 未訂閱
引言: 請教各位前輩﹒ 利用I/O存取特殊形態檔案時(使用TStringGrid元件來顯示資料)﹐是否具有SQL查詢語言或普通查詢替換的方法﹒ 謝謝﹗ 努力,相信會獲得美麗! 忻晟
說的不夠清楚, 何種檔案 不過既然可以用StringGrid的方式展現, 另一種考慮方法是將資料讀入TClientDataSet, 連向TDBGrid, 如此TclientDataSet之locate,lookup等等功能均可使用 當然若檔案格式可以自訂, ClientDataset直接存成.cds或xml均是很好的選擇
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-25 10:54:46 IP:63.84.xxx.xxx 未訂閱
謝謝版主的解答﹒    小弟要存取的特殊形態檔案是一個有關回傳掃描值的檔案(Scan.Out)﹐不能自訂其檔案格式﹐格式如下﹕ 0000710384000127728600000000NRS           E 00007103840001277293        YRSSEAU7851768E 00007103840001277309        YRSSEAU7851768E 00007103840001277316        YRSSEAU7851768E 00007103840001277323        YRSSEAU7851768E 00007103840001277330        YRSSEAU7851768E 可用一般文字編輯程式打開(如記事本)﹒    如版主所言﹐利用TClientDataSet元件來擷取与儲存檔案的動作為MyBase觀念﹐但小弟在學習中發現此元件并不能讀取到目前已經存在的檔案﹐而是要先建立一個機制与格式(如欄位標題等)﹐就像是一個新的Table一般﹐再讓使用者進行編輯﹑儲存与擷取的動作﹒(還是小弟對MyBase觀念有所誤解﹐若不正确﹐請前輩指正) 如是這樣的話﹐這個回傳掃描值的檔案已經存在了﹐且檔案內也有其內容﹐是否就不能使用
------
忻晟
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-25 23:08:12 IP:61.62.xxx.xxx 未訂閱
Hi, BDE 可以自訂 txt 檔的格式為資料表的.    1. 將你的檔案改名為 scan.txt[scan] FILETYPE=FIXED CHARSET=ASCII FIELD1=SNO,FLOAT,10,0,0 FIELD2=SNO2,FLOAT,10,0,10 FIELD3=CNO,CHAR,8,0,20 FIELD4=YN,CHAR,1,0,28 FIELD5=RS,CHAR,2,0,29 FIELD6=SN,CHAR,11,0,31 FIELD7=ENDS,CHAR,1,0,42    程式碼如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.DatabaseName := 'E:\';
  Table1.TableName := 'scan.txt';
  Table1.Open;
end;
弟寫了一個小範例在這裡, 請自行參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34655 發表人 - timhuang 於 2003/07/25 23:37:53
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-26 09:17:31 IP:63.84.xxx.xxx 未訂閱
引言: Hi, BDE 可以自訂 txt 檔的格式為資料表的. 1. 將你的檔案改名為 scan.txt[scan] FILETYPE=FIXED CHARSET=ASCII FIELD1=SNO,FLOAT,10,0,0 FIELD2=SNO2,FLOAT,10,0,10 FIELD3=CNO,CHAR,8,0,20 FIELD4=YN,CHAR,1,0,28 FIELD5=RS,CHAR,2,0,29 FIELD6=SN,CHAR,11,0,31 FIELD7=ENDS,CHAR,1,0,42 程式碼如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.DatabaseName := 'E:\';
  Table1.TableName := 'scan.txt';
  Table1.Open;
end;
弟寫了一個小範例在這裡, 請自行參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34655 發表人 - timhuang 於 2003/07/25 23:37:53
Thanks a lot... > 努力,相信會獲得美麗! 忻晟
------
忻晟
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-26 17:15:53 IP:63.84.xxx.xxx 未訂閱
請問timhuang前輩﹒ 在您的範例中﹐是以*.txt為來源的檔案﹐小弟的檔案是scan.out ﹐照您所述先改名為scan.txt 那樣的話﹐待處理過后的資料是否會破坏原來的特殊形態的檔案格式呢(*.out)﹖ 謝謝﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-26 21:01:56 IP:61.62.xxx.xxx 未訂閱
hi, 若沒有進行存取的話, 是不會有任何影響的, 但若是擔心會異動到原始檔案內容的話, 可以用複製的方式. copy scan.out scan.txt 即可, 即 scan.out 仍舊是原始檔, scan.txt 用來作 table 的來源檔. 這樣就不會有問題了!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-27 13:59:21 IP:63.84.xxx.xxx 未訂閱
引言: hi, 若沒有進行存取的話, 是不會有任何影響的, 但若是擔心會異動到原始檔案內容的話, 可以用複製的方式. copy scan.out scan.txt 即可, 即 scan.out 仍舊是原始檔, scan.txt 用來作 table 的來源檔. 這樣就不會有問題了!
謝謝timhuang前輩的指點﹐待小弟實做后若有問題再向你請教﹗ 再次感謝﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-05-11 2:58:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!