说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

使用文件存取chang字符串

编辑:说三道四文库 发布时间:2018-05-23 05:23
HTML文档下载 WORD文档下载 PDF文档下载
//写文件
procedure TForm1.Button3Click(Sender: TObject);
var FileHandle :THandle;
    slen:integer;
    i,Count:longint;
    s:String;
begin
    FileHandle := FileCreate('test.txt');
    s:=Self.Memo1.Lines.text;
    slen :=length(s);
    fileWrite(filehandle,slen,sizeof(integer));
    fileWrite(filehandle,s,slen);
    FileClose(FileHandle);
end;

//读文件
procedure TForm1.BitBtn1Click(Sender: TObject);
var FileHandle :THandle;
    count,slen,i,k:integer;
    ps:Pchar;
    s:String;
begin
  FileHandle := FileOpen('test.txt',fmOpenRead);
  memo2.Lines.Clear;
  fileRead(filehandle,slen,sizeof(integer));
  fileRead(filehandle,s,slen);
  Memo2.lines.text := s;
  FileClose(FileHandle);
end;

其中,读文件可肯定有问题。
呵呵,该程序执行了非法操作,将被关闭。
谢谢
使用Reset打开文件,用ReadLn读取
sorry
标题打错了
我是说存取长字符串
就是带换行符和回车符的字符串
还有
我不想一下读写一行,效率太低(我要存取许多Memo.lines.Text)
所以,也不能用Memo.Lines.loadfromfile(filename);
所以,我想一下读写整个Memo.lines.Text
我想,你是把LoadFromFile和SaveToFile的功能弄错了。。

这两个方法本来就是对Memo里的所有内容进行操作的。
Delphi会自动的为你处理换行和回车符的。
我要把许多个Memo.Lines保存在同一个文件中
当然还要取到不同的Memo.lines中去
所以,loadfromfile savetofile 不能用
fileRead(filehandle,s,slen);
改成:
fileRead(filehandle,s[0],slen);

其实你可以用一个TStrings啊,那样不用跟文件底层打交道。

好像有问题,FileRead()在Delphi帮助下有个例子
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘