var
fs,fs2 :TFileStream;
s :string;
begin
s := 'abc';
fs := TFileStream.Create('1.tp',fmCreate);
fs2 := TFileStream.Create('1.jpg',fmOpenRead);
fs.Write(s,sizeof(s));
fs.Seek(sizeof(s),soBeginning);
fs.CopyFrom(fs2,fs2.Size);
fs.Write(fs,fs.Size);
fs.Free;
fs2.Free;
end;
请问哪位高手知道生成'1.tp'文件应该怎样读取?
fs,fs2 :TFileStream;
s :string;
begin
s := 'abc';
fs := TFileStream.Create('1.tp',fmCreate);
fs2 := TFileStream.Create('1.jpg',fmOpenRead);
fs.Write(s,sizeof(s));
fs.Seek(sizeof(s),soBeginning);
fs.CopyFrom(fs2,fs2.Size);
fs.Write(fs,fs.Size);
fs.Free;
fs2.Free;
end;
请问哪位高手知道生成'1.tp'文件应该怎样读取?
fs.Write(s,sizeof(s)); //sizeof(s)永远等于4,你的'abc'有用吗?
fs := TFileStream.Create('1.tp',fmCreate);
fs2 := TFileStream.Create('1.jpg',fmOpenRead);
fs.Write(s,sizeof(s)); //写入'abc'
fs.Seek(sizeof(s),soBeginning); //把文件指针移到开始,这等于没有上面那句
fs.CopyFrom(fs2,fs2.Size);//进行文件流复制
fs.Free;
fs2.Free;
var
f:tfilestream;
bytesread:char;
sread:array[0..1024] of char;
s:string;
i:integer;
begin
filedir:=edit1.text;
f:=tfilestream.Create('1.tp',fmopenread);
f.Seek(0,sofrombeginning);
for i:=0 to f.Size-1 do
begin
f.ReadBuffer(bytesread,1);
s:=s+bytesread;
end;
self.Memo1.Text:=s;
f.Free;
end;
procedure TForm1.HsBitBtn1Click(Sender: TObject);
var
fs,fs2 :TFileStream;
s :string;
len:integer;
begin
s := '打发上';
fs := TFileStream.Create('1.tp',fmCreate);
fs2 := TFileStream.Create('2.jpg',fmOpenRead);
len := length(s) ;
fs.Write(len,sizeof(integer)) ;
fs.Write(s,len);
len:=fs2.Size;
fs.Write(len,sizeof(integer)) ;
fs.CopyFrom(fs2,fs2.Size);
fs.Free;
fs2.Free;
end;
//从1.tp文件里读出字符串和jpg文件
procedure TForm1.HsBitBtn2Click(Sender: TObject);
var
fs :TFileStream;
fs2 :TMemoryStream;
s :string;
len:Integer;
begin
fs := TFileStream.Create('1.tp',fmOpenRead );
fs2 := TMemoryStream.Create;
fs.Read(len,sizeof(integer));
fs.Read(s,len) ;
fs.Read(len,sizeof(integer));
fs2.CopyFrom(fs,len) ;
fs2.SaveToFile('3.jpg');
fs.Free;
fs2.Free;end;
文件名1,
图片1(jpg);
文件名2,
图片2(jpg);
文件名3,
图片3(jpg);
...............
这个能不能实现?
还是一样啊,文件名1可以用array[0..50] of char 表示,就是说文件名固定好,然后把长度一存,后面就直接来图片,读的时候直接按长度把文件名读出来,然后读长度,按长度把图片读出来