function WriteData(FileName:String):Boolean;
var
FileS :TFileStream;
Res :TResourceStream;
StrData :string[255];
IntData :Integer;
begin
try
try
//建立文件流,参数1为文件路径,参数2为打开方式
FileS :=TFileStream.Create(FileName,fmOpenWrite or fmShareExclusive);
//建立资源文件的方法为brcc32.exe File.rc
//其中File.rc内为文本内容,例如:ResFile File File.exe
//参数1为资源名称,参数2为资源类型,参数3为要添加到资源文件中的文件的名称
//建立资源文件流,参数2为资源名称,参数3为资源类型
Res :=TResourceStream.Create(Hinstance,'ResFile',PChar('File'));
if Res<>nil then
//复制资源流中的内容到文件流内,参数2为0时为复制所有内容
FileS.CopyFrom(Res,0);
//移动文件指针,参数1为移动距离,为负数时为向前移动,参数2为移动地点,如soFromEnd为从文件结尾
FileS.Seek(0,soFromEnd);
//写入字符数据,参数1为写入的内容,参数2为长度
FileS.WriteBuffer(StrData,SizeOf(StrData));
FileS.WriteBuffer(IntData,SizeOf(IntData));
Result :=True;
finally
Res.Free;
FileS.Free;
Result :=False;
end;
except
MessageBox(Application.Handle,'写入文件失败!','提示',MB_ICONERROR+MB_OK);
end;
end;
function ReadData(FileName:String):Boolean;
var
FileS :TFileStream;
StrData :string[255];
IntData :Integer;
begin
try
try
//建立文件流,参数1为文件路径,参数2为打开方式
FileS :=TFileStream.Create(FileName,fmOpenRead or fmShareExclusive);
//写入字符数据,参数1为写入的内容,参数2为长度
FileS.Seek(-SIZEOF(IntData),soFromEnd);
FileS.ReadBuffer(IntData,SizeOf(IntData));
FileS.Seek(-sizeof(StrData)-SIZEOF(IntData),soFromEnd);
FileS.ReadBuffer(StrData,SizeOf(StrData));
Result :=True;
finally
FileS.Free;
Result :=False;
end;
except
MessageBox(Application.Handle,'读取文件失败!','提示',MB_ICONERROR+MB_OK);
end;
end;