線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1586
推到 Plurk!
推到 Facebook!

请问如何合并几个文本文件?

尚未結案
hrbshen
一般會員


發表:10
回覆:11
積分:4
註冊:2005-04-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-13 09:37:08 IP:218.9.xxx.xxx 未訂閱
比如我有1.txt,2.txt,3.txt三个文本文件,如何将它们全并成123.txt? thanks
SamSam1230
中階會員


發表:128
回覆:178
積分:65
註冊:2004-12-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-13 09:53:05 IP:218.103.xxx.xxx 未訂閱
你的意思是純檔名合併嗎? 你可以先用 Tstringlist 的 loadfromfile  把你的要的檔案先data load 到 tstringlist 再把他們合併 再存起來
 
var a , b, c ,abc : tstringlist    a := tstringlist.create();
b := tstringlist.create();
c := tstringlist.create();
abc := tstringlist.create();    a.loadfromfile('\1.txt');
b.loadfromfile('\2.txt');
c.loadfromfile('\3.txt');    abc.assign(a);
abc.addstring(b);
abc.addstring(c);
abc.savetofile('123.txt');    a.free;
b.free;
c.free;
abc.free;
可能不是最好的方法 !!! 我也是初學者 !!! 不要怪我呀..
hrbshen
一般會員


發表:10
回覆:11
積分:4
註冊:2005-04-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-13 10:11:19 IP:218.9.xxx.xxx 未訂閱
我没有用过TFileStream,用它是不是简单些呢? 能否给例程?谢谢。(DELPHI本身的TFileStream帮助中看不明白)
引言: 你的意思是純檔名合併嗎? 你可以先用 Tstringlist 的 loadfromfile 把你的要的檔案先data load 到 tstringlist 再把他們合併 再存起來
 
var a , b, c ,abc : tstringlist    a := tstringlist.create();
b := tstringlist.create();
c := tstringlist.create();
abc := tstringlist.create();    a.loadfromfile('\1.txt');
b.loadfromfile('\2.txt');
c.loadfromfile('\3.txt');    abc.assign(a);
abc.addstring(b);
abc.addstring(c);
abc.savetofile('123.txt');    a.free;
b.free;
c.free;
abc.free;
可能不是最好的方法 !!! 我也是初學者 !!! 不要怪我呀..
SamSam1230
中階會員


發表:128
回覆:178
積分:65
註冊:2004-12-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-13 10:32:23 IP:218.103.xxx.xxx 未訂閱
哈哈 不好意思 我也很少用Tfilestream 但看過help也不知道可不可以直接從檔案read 進來 因為它把供的 API 是read buffer 我也看不懂的是什麼意思( var buffer;) 沒有type 的 ???!!! 有大大知道的也可以讓我學一下 !另外提供的是 copy from 這個從另外一個Tstream copy 過來 所以用這個先要create Tstream 哈哈講那麼久都沒幫上忙.. 可能不是最好的方法 !!! 我也是初學者 !!! 不要怪我呀.. 我最喜歡吃零食啦^.^
h@visli
資深會員


發表:103
回覆:429
積分:431
註冊:2004-02-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-13 13:10:54 IP:222.248.xxx.xxx 未訂閱
TStrings的loadfromfile與saveToFile本身也都是使用TFileStream進行操作。    您要完全使用流操作,可以參照下面的代碼:
procedure TForm1.Button1Click(Sender: TObject);
var
  fromStream, toStream: TFileStream;
begin
  tostream := TFileStream.Create('E:\Delphi\abc.txt', fmCreate);
  fromStream := TFileStream.Create('E:\Delphi\a.txt', fmOpenRead or fmShareDenyWrite);
  toStream.CopyFrom(fromStream, fromStream.Size);
  fromStream.Free;
  fromStream := TFileStream.Create('E:\Delphi\b.txt', fmOpenRead or fmShareDenyWrite);
  toStream.CopyFrom(fromStream, fromStream.Size);
  fromStream.Free;
  fromStream := TFileStream.Create('E:\Delphi\c.txt', fmOpenRead or fmShareDenyWrite);
  toStream.CopyFrom(fromStream, fromStream.Size);
  fromStream.Free;
  toStream.Free;
end;    
---------------------------- 於Delphi K.Top之上 博采眾家之長, 奉獻綿薄之力 ---------------------------
------
------------------------
博采眾家之長,奉獻綿薄之力
------------------------
系統時間:2024-05-19 15:37:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!