|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2003/10/6 9:10:13 |
标题: |
|
加入我的收藏 |
楼主: |
小弟在这里想请教一下高手,怎样把一个文本文件的顺序反过来,也就是说把最后一行变为第一行,第一行变为最后一行,依次类推,需要通过什么方法实现,及使用什么函数
----------------------------------------------
wjp |
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/10/6 10:46:00 |
1楼: |
memo1->lines->loadfromfile("youfile.txt")//导入愿文件 TStringList * sl=new TStringList; sl->Clear;//一个空的字符串对象 for (int i=memo1.lines.count-1 ;i>=0;i++)//从原文件的最后一行开始 //i=memo1.lines.count-1 {sl->Add(memo1.lines.string[i]);//空的字符串对象从第一行开始加入 } sl->SaveToFile("youfile.txt");//保存到原文件
就可以了,明白吗?!
----------------------------------------------
|
作者: |
|
2003/10/6 11:58:59 |
2楼: |
bios,厉害!!方法也比较好. 顶!!
----------------------------------------------
|
作者: |
|
2003/10/7 14:15:10 |
3楼: |
兄弟明白,这个方法是不错,但是对于行数很多的文件比如说100000行就不行了吧!
----------------------------------------------
wjp
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/10/7 16:09:13 |
4楼: |
是的 人类 对 于 海量 数据 存取一直都很头疼
如64 个盘的汉落塔问题 要 用巨型机都要 5千多万年,所以 海量 数据 是人类的极限!
又如 宇宙中的那些 天文数字般的数据!计算起来要多久时间!
----------------------------------------------
|
作者: |
|
2003/10/7 19:57:46 |
5楼: |
我有辦法……用Readln和TFileStream等我調試一下!
----------------------------------------------
——混世生
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/10/7 20:06:55 |
6楼: |
BORLAND的流文件处理确实很厉害啊! 大哥就等你了!
----------------------------------------------
|
作者: |
|
2003/10/8 8:13:23 |
7楼: |
期待12521052的结果!
----------------------------------------------
wjp
|
作者: |
|
2003/10/8 18:50:50 |
8楼: |
不好意思哈,想到辦法,但是調試了很久,我也是新學哦。
procedure TForm1.Button1Click(Sender: TObject); var s : string; //緩衝用 f1, f2 : TextFile; //readln和writeln用 fs, ft : TFilestream; //改名用 const //兩個文件名,Ft爲目標文件 Fsname = 'c:\windows\desktop\s.txt'; Ftname = 'c:\windows\desktop\t.txt'; begin assignfile(f1, 'c:\windows\desktop\ls.txt'); //設:原文件爲桌面上的ls.txt(98下) assignfile(f2, fsname); //關聯文件名 reset(f1); //打開ls.txt while not eof(f1) do begin //如果沒有到文件末尾則重複 readln(f1 , s); //讀一行 s := #13 + s; //在這行前加一個回車符 rewrite(f2); //打開s.txt writeln(f2, s); //寫入這行到s.txt中 closefile(f2); //關閉s.txt fs := Tfilestream.Create(fsname , fmOpenWrite); //打開s.txt爲寫入關態 if fileexists(ftname) then //打開ft爲讀取關態,如果不存在則新建 ft := Tfilestream.Create(ftname , fmOpenRead) else ft := Tfilestream.Create(ftname , fmCreate); fs.Seek(0 , soFromEnd); //將指針定在s.txt的末尾 fs.CopyFrom(ft , ft.Size); //將t.txt的內容寫到s.txt中 fs.Free; ft.Free; //關閉兩個文件流 deletefile(ftname); //刪除t.txt renamefile(fsname , ftname); //將s.txt改名爲t.txt end; //while not eof(f) end;
----------------------------------------------
——混世生
|
作者: |
|
2003/10/9 11:03:35 |
9楼: |
哇,注释写得很不错 有风格!!
----------------------------------------------
|
作者: |
zizii (高高高级馒头) |
★☆☆☆☆ |
-
|
神秘会员 |
|
2003/10/9 15:03:22 |
10楼: |
嗯,好注释!
----------------------------------------------
维护世界和平,共创美好盒子。
|
|