衫
衫菜
Unregistered / Unconfirmed
GUEST, unregistred user!
[?]
下面的函数可以依次把存在一个文件里的两个文件读出来,并保存到相关文件中去,
可是在读第一个的时候是正确的,在读第二个的时候就出错了,请帮忙指点我一下!
Function Cjt_LoadFromFile(SourceFile,TargetFile :string):Boolean;
var
Source:TFileStream;
Target:TMemoryStream;
MyFileSize,mm1:integer;
begin
try
Target:=TMemoryStream.Create;
Source:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
try
Source.Seek(-sizeof(MyFileSize),soFromEnd);
Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//读出资源大小
Source.Seek(-MyFileSize,soFromEnd);//定位到资源位置
Target.CopyFrom(Source,MyFileSize-sizeof(MyFileSize));//取出资源
Target.SaveToFile('E:/CSdelphi资料大全/tmp_3.txt');//存放到文件
//上面是对的!
target.Free;
target:=tmemorystream.Create;
Source.Seek(-sizeof(mm1),soFromcurrent);
Source.ReadBuffer(mm1,sizeof(mm1));//读出资源大小
Source.Seek(-mm1,soFromcurrent);//定位到资源位置
Target.CopyFrom(Source,mm1-sizeof(mm1));//取出资源
//这里就出错了,说读STREAM的时候有错误!!!
Target.SaveToFile('E:/CSdelphi资料大全/tmp_2.txt');//存放到文件
finally
Target.Free;
Source.Free;
end;
except
Result:=false;
Exit;
end;
Result:=true;
end;
下面的函数可以依次把存在一个文件里的两个文件读出来,并保存到相关文件中去,
可是在读第一个的时候是正确的,在读第二个的时候就出错了,请帮忙指点我一下!
Function Cjt_LoadFromFile(SourceFile,TargetFile :string):Boolean;
var
Source:TFileStream;
Target:TMemoryStream;
MyFileSize,mm1:integer;
begin
try
Target:=TMemoryStream.Create;
Source:=TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
try
Source.Seek(-sizeof(MyFileSize),soFromEnd);
Source.ReadBuffer(MyFileSize,sizeof(MyFileSize));//读出资源大小
Source.Seek(-MyFileSize,soFromEnd);//定位到资源位置
Target.CopyFrom(Source,MyFileSize-sizeof(MyFileSize));//取出资源
Target.SaveToFile('E:/CSdelphi资料大全/tmp_3.txt');//存放到文件
//上面是对的!
target.Free;
target:=tmemorystream.Create;
Source.Seek(-sizeof(mm1),soFromcurrent);
Source.ReadBuffer(mm1,sizeof(mm1));//读出资源大小
Source.Seek(-mm1,soFromcurrent);//定位到资源位置
Target.CopyFrom(Source,mm1-sizeof(mm1));//取出资源
//这里就出错了,说读STREAM的时候有错误!!!
Target.SaveToFile('E:/CSdelphi资料大全/tmp_2.txt');//存放到文件
finally
Target.Free;
Source.Free;
end;
except
Result:=false;
Exit;
end;
Result:=true;
end;