L
lah998
Unregistered / Unconfirmed
GUEST, unregistred user!
我把一个文件夹下的三个文件压缩成一个文件,然后逐个来解压,解第一个文件时就不行了
,是空的,只有一个文件名没有东西(假设是文本文件)。如果大富翁的朋友们都帮不了我,
我只有放弃编程。叹息:做人难,做女人更难!
procedure DecompressStream(inpStream, outStream: TStream);//解压过程
var
InpBuf, OutBuf: Pointer
OutBytes, sz: Integer
begin
InpBuf := nil
OutBuf := nil
sz := inpStream.Size - inpStream.Position
if sz > 0 then
try
GetMem(InpBuf, sz)
inpStream.Read(InpBuf^, sz)
DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes)
outStream.Write(OutBuf^, OutBytes)
finally
if InpBuf <> nil then FreeMem(InpBuf)
if OutBuf <> nil then FreeMem(OutBuf)
end
outStream.Position := 0
end
procedure TForm1.Button3Click(Sender: TObject);
var
Ms,MyMsFile,Fs:TMemoryStream;
MyFile:string;
MyInt:integer;
begin
Ms:=TMemoryStream.Create ;
MyMsFile:=TMemoryStream.Create ;
Fs:=TMemoryStream.Create ;
try
Ms.LoadFromFile('c:/123.jmi');//是我压缩后的文件假设里面含有三个文件,把它打开
...
Ms.Position :=0;
Fs.CopyFrom(Ms,MyInt)//假设第一个文件大小是MyInt.
DecompressStream(Fs,MyMs);//解压第一个文件
MyMs.SaveToFile(MyFile);//保存第一个文件(为什么这个文件是空的!!!)
FINALLY
Ms.Free;
MyMsFile.Free ;
Fs.Free;
end;
end;
,是空的,只有一个文件名没有东西(假设是文本文件)。如果大富翁的朋友们都帮不了我,
我只有放弃编程。叹息:做人难,做女人更难!
procedure DecompressStream(inpStream, outStream: TStream);//解压过程
var
InpBuf, OutBuf: Pointer
OutBytes, sz: Integer
begin
InpBuf := nil
OutBuf := nil
sz := inpStream.Size - inpStream.Position
if sz > 0 then
try
GetMem(InpBuf, sz)
inpStream.Read(InpBuf^, sz)
DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes)
outStream.Write(OutBuf^, OutBytes)
finally
if InpBuf <> nil then FreeMem(InpBuf)
if OutBuf <> nil then FreeMem(OutBuf)
end
outStream.Position := 0
end
procedure TForm1.Button3Click(Sender: TObject);
var
Ms,MyMsFile,Fs:TMemoryStream;
MyFile:string;
MyInt:integer;
begin
Ms:=TMemoryStream.Create ;
MyMsFile:=TMemoryStream.Create ;
Fs:=TMemoryStream.Create ;
try
Ms.LoadFromFile('c:/123.jmi');//是我压缩后的文件假设里面含有三个文件,把它打开
...
Ms.Position :=0;
Fs.CopyFrom(Ms,MyInt)//假设第一个文件大小是MyInt.
DecompressStream(Fs,MyMs);//解压第一个文件
MyMs.SaveToFile(MyFile);//保存第一个文件(为什么这个文件是空的!!!)
FINALLY
Ms.Free;
MyMsFile.Free ;
Fs.Free;
end;
end;