我用这样的格式写入字符串:字符串1的长度(2个字节存放),字符串1;字符串2的长度(2个字节存放),字符串2 ... 。写入用下面的程序:现在只写入一个的情况.
var
ArticleName:string;
Namesize:word;
Target:TFileStream;
begin
Target:=TFileStream.Create('c:\a.dat',fmOpenWrite or fmCreate);
Target.WriteBuffer(length(ArticleName),Sizeof(Namesize));
Target.WriteBuffer(PChar(ArticleName)^,length(ArticleName));
end;读出如何读出字符串,
var
ArticleName:string;
Namesize:word;
Source:TFileStream;
begin
Source.ReadBuffer(Namesize,sizeof(Namesize));
该读出下面Namesize个字节,赋值给ArticleName;
我该如何写,直演示一个字符串就行了。答对分数全给你!
var
ArticleName:string;
Namesize:word;
Target:TFileStream;
begin
Target:=TFileStream.Create('c:\a.dat',fmOpenWrite or fmCreate);
Target.WriteBuffer(length(ArticleName),Sizeof(Namesize));
Target.WriteBuffer(PChar(ArticleName)^,length(ArticleName));
end;读出如何读出字符串,
var
ArticleName:string;
Namesize:word;
Source:TFileStream;
begin
Source.ReadBuffer(Namesize,sizeof(Namesize));
该读出下面Namesize个字节,赋值给ArticleName;
我该如何写,直演示一个字符串就行了。答对分数全给你!
procedure TForm1.WriteClick(Sender: TObject);
var
ArticleName:string;
NameSize:Integer;
Target:TFileStream;
begin//写入文件
Target:=TFileStream.Create('d:\a.dat',fmOpenWrite or fmCreate);
try
ArticleName:='I love you baby!';
NameSize:=Length(ArticleName);
Target.WriteBuffer(PChar(IntToStr(NameSize))^,Sizeof(NameSize));
Target.WriteBuffer(PChar(ArticleName)^,NameSize);
finally
Target.Free;
end;
end;procedure TForm1.ReadClick(Sender: TObject);
var
ArticleName:string;
NameSize:Integer;
Source:TFileStream;
begin//读出来内容
Source:=TFileStream.Create('d:\a.dat',fmOpenRead);
try
SetLength(ArticleName,SizeOf(NameSize));
Source.ReadBuffer(ArticleName[1],SizeOf(NameSize));
NameSize:=StrToInt(ArticleName);
ArticleName:='';
SetLength(ArticleName,NameSize);
Source.Seek(SizeOf(NameSize),soFromBeginning);
Source.ReadBuffer(ArticleName[1],NameSize);
ShowMessage(ArticleName);
finally
Source.Free;
end;
end;