文字檔的問題??? |
尚未結案
|
indigoqqqq
一般會員 發表:2 回覆:1 積分:0 註冊:2002-08-31 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
讀取檔案的部分用 AssignFile, ex:
var f: TextFile; sLine: string; begin AssignFile(f, 'C:\xxx.txt'); try Reset(f); while not Eof(f) do begin ReadLn(f, sLine); // 分析 sLine 字串 end; finally CloseFile(f); end; end;另外分解字串參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20862 |
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
為何不用 TStringList ?
var i.j: Integer; Fs: TStringList; Ds: array of String; TempS: String; begin Fs := TStringList.Create; Fs.LoadFromFile('你要開的檔案'); for i := 0 to (Fs.Count - 1) do// 分析 sLine 字串 begin TempS := Fs.Strings[i];//Count 是只有幾行 i 是指哪一行 repeat j := pos('#',TempS); if (j = 0) and (Length(TempS) > 0) then begin SetLength(Ds,Length(Ds) 1); Ds[Length(Ds) - 1] := TempS;// 沒有'#',全部都要取出 end else if j = 1 then TempS := Copy(TempS,2,Length(TempS) - 1))// 去除開頭是 '#' 的部份 else if j > 1 then begin SetLength(Ds,Length(Ds) 1); Ds[Length(Ds) - 1] := Copy(TempS,1,j - 1);// 要取出的部份 TempS := Copy(TempS,j 1,(Length(TempS) - j 1));// 用剩下的部份 end; until j = 0; end; Fs.Free; end;(注意:程式沒跑過,可能會有錯,但是整體架構是正確的,跑跑看吧!! 如有錯誤,應該只是要改改Copy的位置參數就會對了) TStringList 很好用 某些狀況根本就直接用 TStringList 而不需要用 Array 更重要的是 他 *** 簡單 *** 不用牽涉到基礎的一些輸出與輸入 不像 AssignFile 要使用時 參數一堆 只要是文字型態 可以考慮用 TStringList 來處理 很方便的ㄋㄟ 方便 不就是 Deplhi 的基本精神之一 ^_^ 發表人 - syntax 於 2002/09/01 05:48:26 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |