Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизКак несколько файлов упаковать в один внешний Найти похожие ветки
← →
MBo (2002-04-15 16:34) [4]вряд ли захочется иметь exe в 100 мегабайт.
удобнее всего с помощью TFileStream укладывать файлы в один, и потом читать.вот простой пример:
I am trying to take some .png files and put them in one file, which will also specify the position of
the start and end of each file in the big file
From: MBo Date: 04/14/2002 09:51PM PST
This is simple way. Look at Seek and Position for more complex work
If you need to save filenames in result file, write string:
N:=Length(Fname);
FS.Write(N,SizeOf(Integer));
FS.Write(FName[1],SizeOf(Integer));
and read
FS.Read(N,SizeOf(Integer));
SetLength(Fname,N);
FS.Read(Fname[1],N);
and then
FSSave:=tfilestream.create(fname...)
procedure TForm1.Button1Click(Sender: TObject);
var
FS,FSLoad:tfilestream;
N:integer;
begin
FS:=tfilestream.create("e:\files.dat",fmCreate);
N:=2;
FS.Write(N,SizeOf(Integer));
FSLoad:=tfilestream.create("e:\4.jpg",fmOpenRead);
N:=FSload.Size;
FS.Write(N,SizeOf(Integer));
FS.CopyFrom(FSLoad,N);
FSLoad:=tfilestream.create("e:\5.jpg",fmOpenRead);
N:=FSload.Size;
FS.Write(N,SizeOf(Integer));
FS.CopyFrom(FSLoad,N);
FSLoad.Free;
FS.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
FS,FSSave:tfilestream;
Num,N,NSize:integer;
begin
FS:=tfilestream.create("e:\files.dat",fmOpenRead);
FS.Read(Num,SizeOf(Integer));
for N:=1 to Num do begin
FSSave:=tfilestream.create("e:\file"+inttostr(N)+".jpg",fmCreate);
FS.Read(NSize,SizeOf(Integer));
FSSave.CopyFrom(FS,NSize);
FSSave.Free;
end;
FS.Free;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c