DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hcwong1993
今日帖子: 37
在线用户: 16
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 wjpry23 (人猿) ★☆☆☆☆ -
普通会员
2003/10/6 9:10:13
标题:
文本文件的操作 浏览:2041
加入我的收藏
楼主: 小弟在这里想请教一下高手,怎样把一个文本文件的顺序反过来,也就是说把最后一行变为第一行,第一行变为最后一行,依次类推,需要通过什么方法实现,及使用什么函数
----------------------------------------------
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");//保存到原文件

就可以了,明白吗?!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 eeistone (stone) ★☆☆☆☆ -
盒子活跃会员
2003/10/6 11:58:59
2楼: bios,厉害!!方法也比较好.
顶!!
----------------------------------------------
作者:
男 wjpry23 (人猿) ★☆☆☆☆ -
普通会员
2003/10/7 14:15:10
3楼: 兄弟明白,这个方法是不错,但是对于行数很多的文件比如说100000行就不行了吧!
----------------------------------------------
wjp
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/7 16:09:13
4楼: 是的 人类 对 于 海量 数据 存取一直都很头疼 

如64 个盘的汉落塔问题 要 用巨型机都要 5千多万年,所以 
海量 数据 是人类的极限!

又如 宇宙中的那些 天文数字般的数据!计算起来要多久时间!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 12521052 (混世生) ★☆☆☆☆ -
盒子活跃会员
2003/10/7 19:57:46
5楼: 我有辦法……用Readln和TFileStream等我調試一下!
----------------------------------------------
——混世生
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/7 20:06:55
6楼: BORLAND的流文件处理确实很厉害啊!
大哥就等你了!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 wjpry23 (人猿) ★☆☆☆☆ -
普通会员
2003/10/8 8:13:23
7楼: 期待12521052的结果!

----------------------------------------------
wjp
作者:
男 12521052 (混世生) ★☆☆☆☆ -
盒子活跃会员
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;
----------------------------------------------
——混世生
作者:
男 skertone (奇奇怪) ★☆☆☆☆ -
盒子活跃会员
2003/10/9 11:03:35
9楼: 哇,注释写得很不错 有风格!!
----------------------------------------------
按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/10/9 15:03:22
10楼: 嗯,好注释!
----------------------------------------------
维护世界和平,共创美好盒子。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS