Delphi的文件保存TFileStream(2010版本前后对比)

// 2010后
procedure TForm1.Button3Click(Sender: TObject);
var
pstr:Pchar;
mestr:string;
FS:TFilestream;
sUString: UTF8String;
begin
FS:=TFileStream.Create((Extractfilepath(Application.ExeName)+'123.txt'),fmCreate or fmOpenWrite);
FS.Seek(0, soEnd);
mestr:=Memo1.Text;
pstr:=Pchar(mestr);//把字符串转成字符指针
sUString := UTF8String(mestr);
FS.write(sUString[1], Length(mestr));//正确!XE必须将将字符串编码为UTF8
FS.Free;
end;

// 2010前

procedure TForm1.Button7Click(Sender: TObject);
var
pstr:Pchar;
mestr:string;
FS:TFilestream;
sUString: UTF8String;
begin
FS:=TFileStream.Create((Extractfilepath(Application.ExeName)+'123.txt'),fmCreate or fmOpenWrite);
FS.Seek(0, soEnd);
mestr := Memo1.Text;
pstr := Pchar(mestr);//把字符串转成字符指针
FS.Writebuffer(pstr^,Length(pstr));//把字符串写入流中
FS.Free;
end;

 

//文件转字节数组

procedure TForm1.Button1Click(Sender: TObject);
var
AFileData: TByteDynArray;
fsize:Integer;
FS:TFilestream;
begin
FS:=TFileStream.Create('D:\a.zip',fmOpenRead);
FS.Position:=0;//切记,操作图片前一定要这句,否则错误
//把内存流转化成TByteDynArray
fsize:=FS.Size;
SetLength(AFileData, fsize);
FS.Read(AFileData[0],fsize);
ShowMessage('ok');
FS.Free;
end;

posted on 2021-07-07 14:02  疯狂delphi  阅读(324)  评论(0编辑  收藏  举报

导航