DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hxh57738897
今日帖子: 24
在线用户: 20
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/21 14:06:00
标题:
Treader类的问题 浏览:2626
加入我的收藏
楼主: Treader类的问题

先用TWriter.writestring写数据到文件
procedure TForm1.Button1Click(Sender: TObject);
Var
FileStream:TFilestream;
Mywriter:TWriter;
i: integer ;
Begin
FileStream:=TFilestream.create('c:\a.txt',fmcreate);//创建文件流对象
Mywriter:=TWriter.create(FileStream,1024);//把Mywriter和FileStream联系起来
Mywriter.writelistbegin; //写入列表开始标志
For i:=0 to Memo1.lines.count-1 do
Mywriter.writestring(memo1.lines[i]);//保存Memo组件中文本信息到文件中
Mywriter.writelistend;//写入列表结束标志
FileStream.seek(0,sofrombeginning);//文件流对象指针移到流起始位置
Mywriter.free;//释放Mywriter对象
FileStream.free;//释放FileStream对象
Memo1.lines.Clear ;
End;

然后用TReader.readstring来读文件 
procedure TForm1.Button2Click(Sender: TObject);
Var
FileStream:TFilestream;
Myreader:TReader;
Begin
FileStream:=TFilestream.create('c:\a.txt',fmopenread);
Myreader:=TReader.create(FileStream,1024); //把Myreader和FileStream联系起来
Myreader.readlistbegin;//把写入的列表开始标志读出来
Memo1.lines.clear; //清除Memo1组件的文本内容
While not myreader.endoflist do//注意TReader的一个方法:endoflist
Begin
Memo1.lines.add(myreader.readstring); //把读出的字符串加到Memo1组件中
End;
Myreader.readlistend;//把写入的列表结束标志读出来
Myreader.free;//释放Myreader对象
FileStream.free;//释放FileStream对象
End;

然而当程序执行到Myreader.readlistbegin;发生运行时错误
看图片:http://www.bwkj.net/ztreader1.jpg

----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2003/7/22 0:41:55
1楼: 先用TWriter.writestring写数据到文件
此段改為如下即可

var
    FileStream: TFileStream;
    Writer    : TWriter;
    I         : Integer;
begin
  FileStream := TFileStream.Create('c:\a.txt',fmCreate or fmOpenWrite or fmShareDenyNone);
  Writer := TWriter.Create (FileStream, 1024);
  Writer.WriteListBegin;
  for I := 0 to Memo1.Lines.Count - 1 do
    Writer.WriteString (Memo1.Lines[I]);
    Writer.WriteListEnd;
    Writer.Destroy;
    FileStream.Destroy;
    Memo1.lines.Clear ;
end;
----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/22 16:18:17
2楼: 谢谢我试试
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/22 16:24:59
3楼: 还是不行啊朋友!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2003/7/22 16:35:52
4楼: 煩請說明錯誤在那?

----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/22 17:14:53
5楼: 然而当程序执行到Myreader.readlistbegin;发生运行时错误
看图片:http://www.bwkj.net/ztreader1.jpg

你没把怎么问题看完吗?:)
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/23 7:43:46
6楼: : 然而当程序执行到Myreader.readlistbegin;发生运行时错误
看图片:http://www.bwkj.net/ztreader1.jpg

你没把怎么问题看完吗?:)
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2003/7/24 0:33:46
7楼: var
    FileStream: TFileStream;
    Writer    : TWriter;
    I         : Integer;
begin
  FileStream := TFileStream.Create('c:\a.txt',fmCreate or fmOpenWrite or fmShareDenyNone);
  Writer := TWriter.Create (FileStream, 1024);
  Writer.WriteListBegin;
  for I := 0 to Memo1.Lines.Count - 1 do
    Writer.WriteString (Memo1.Lines[I]);
    Writer.WriteListEnd;
    Writer.Destroy;
    FileStream.Destroy;
    Memo1.lines.Clear ;
end;

不會有錯誤訊息阿

----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/24 6:20:49
8楼: Var
FileStream:TFilestream;
Myreader:TReader;
Begin
FileStream:=TFilestream.create('c:\a.txt',fmopenread);
Myreader:=TReader.create(FileStream,1024); //把Myreader和FileStream联系起来
Myreader.readlistbegin;//把写入的列表开始标志读出来
Memo1.lines.clear; //清除Memo1组件的文本内容
While not myreader.endoflist do//注意TReader的一个方法:endoflist
Begin
Memo1.lines.add(myreader.readstring); //把读出的字符串加到Memo1组件中
End;
Myreader.readlistend;//把写入的列表结束标志读出来
Myreader.free;//释放Myreader对象
FileStream.free;//释放FileStream对象
End;

我说的下面这段有运行时错误Myreader.readlistbegin;//这句就出错了
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/24 6:40:14
9楼: 我把调试程序给你吧:http://www.bwkj.net/down/down3/TStream1.rar
帮我调式看看,谢谢!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS