主页 > 编程资料 > Delphi >
发布时间:2015-09-22 作者:网络 阅读:117次

 

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;


关键字词: