List := TStringList.Create;//建立一文件流
List.LoadFromFile('dog.dat');//装入DOG.dat文件,此文件中已保存有原软件狗中内容
S := List[0];
if length(s)=0 then
for i:=0 to 120 do
s:=s+' ';
ss:='';
for i:=0 to nlength do //读入待写入狗中的内容
ss:=ss+pbuffer[i];
if nstart<>0 then
s:=copy(s,1,nstart+1)+ss+copy(s,nstart+nlength+1,121-nstart-nlength-1)
else
s:=ss+copy(s,nstart+nlength+2,121-nstart-nlength-2); //从初始位置开始写
list[0]:=s;
list.savetofile('dog.dat'); //写入到dog.dat文件中,就像狗真的存在一样,可读写
List.Free;
Dogwritebuffer:=0; //写入成功
end;
function dogreadbuffer(nstart:longint; nlength: longint;pbuffer:PChar):longint; //读狗函数
//三个参数为:从狗中开始读的位置、长度、保存信息的地址
var
s: String;
i:Integer;
List: TStringList;
begin
// Dogreadbuffer:=nlength; //读出成功
// exit;
List := TStringList.Create;
List.LoadFromFile('dog.dat'); //读入存放在文件dog.dat中的狗资料
S := List[0];
if length(s)=0 then
for i:=0 to 120 do
s:=s+' ';
s:=copy(s,nstart+1,nlength+1); //copy是从1开始计起的,1与0都一样,复
//提取出相应起始位置和长度的内容
// for i:=1 to length(s) do
// pbuffer[i-1]:=s[i];
StrPCopy(pbuffer,S); //返回存放内容的相应地址 List.Free;
|