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

读取文本文件的一部分内容

尚未結案
fuudy
一般會員


發表:30
回覆:11
積分:8
註冊:2002-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-24 09:26:49 IP:218.4.xxx.xxx 未訂閱
各位大大: 1.怎样读取文本文件test.txt的一部分内容,比如说此文件有1000行,我想读取第900行到最后,然后存入新的文件中,该如何操作呢? 2.如果这个文件test.txt每天都会向里添加新的内容,我怎样读取新的内容?然后存入新的文件中 谢谢!!!
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-24 09:41:26 IP:220.130.xxx.xxx 未訂閱
Hi fuudy:    方法有很多種, 提供一種給你參考.    使用TStringList將test.txt載入    
TStringList *dat = new TStringList;    dat->LoadFromFile("C:\\test.txt");    for(int i = 900;i<1000;i  )
        dat->Strings[i];    // 這就是900~1000每一行的資料    delete dat;
如果要讀取每日的新資料, 可以在每日讀取資料結束後, 紀錄最後讀取的行數, 下次要讀取時就直接從那一行開始讀到最後一行. ^___^ -------------------------- ~天下本無事 庸人自擾之~
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-24 09:47:50 IP:61.222.xxx.xxx 未訂閱
用TStringList 使用全部載入的方式-->修改-->全部寫入(都是全部就對了!蠻傷資源 隨著資料量越來越大,載入時間就越久,佔資源就越大。 用 TFileStream 效率會比較好! 或者用 AssignFile(F, OpenDialog1.FileName); Reset(F); Readln(F, S); CloseFile(F); 比較不佔資源 發表人 - wameng 於 2004/09/24 09:54:03
fuudy
一般會員


發表:30
回覆:11
積分:8
註冊:2002-11-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-24 11:23:40 IP:218.4.xxx.xxx 未訂閱
wameng兄和Windyboy兄 能否详细说明之 谢谢!!!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-24 11:45:21 IP:61.222.xxx.xxx 未訂閱
用 TStringList var I :integer; FileStr : TStringList; begin FileStr := TstringList.Create; try FileStr.loadFromfile('test.txt'); if FileStr.Count>900 then For I:= 900 to FileStr.Count-1 do begin showmessage(FileStr[I]); end; { ADD NEW ITEM } FileStr.ADD('新的'); FileStr.savetoFile('test.txt'); finally FileStr.Free; end; end; 發表人 - wameng 於 2004/09/24 11:48:33
fuudy
一般會員


發表:30
回覆:11
積分:8
註冊:2002-11-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-24 12:55:38 IP:218.4.xxx.xxx 未訂閱
wameng兄 谢谢您 但是执行的结果和以前的文件一样
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-24 15:12:18 IP:220.135.xxx.xxx 未訂閱
Hi Fuudy 你好, 以下的寫法也很快
procedure TForm1.Button1Click(Sender: TObject);
var
  F1 : Textfile;
  S: string;
  i : integer;
begin        AssignFile(F1, 'c:\Four.txt'); { File selected in dialog }
    FileMode := 0;
    Reset(F1);        for i := 1 to 899 do
        Readln(F1);
    while not Eof(F1) do begin
       Readln(F1, S);
       Mome1.Lines.Add(S);
    end;
    CloseFile(F1);    end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-07-05 10:48:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!