Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Обьединит файлы   Найти похожие ветки 

 
Oleg_teacher ©   (2007-04-27 20:06) [0]

как можна обьединить несколько файла в один с не текстовой информацыей


 
Desdechado ©   (2007-04-27 20:42) [1]

copy 1.zip + 2.jpg 3.smth


 
Alx2 ©   (2007-04-28 01:10) [2]

copy /b 1.zip + 2.jpg 3.smth


 
Fredy314 ©   (2007-04-28 08:59) [3]

а если так
rar a 3.zip 1.zip 2.txt
то потом можно будет раз"единить обратно


 
Novice   (2007-04-28 09:21) [4]

способ 1:

var
 f1, f2: file;
 xfer: Word;
 buf: PChar;
begin
 AssignFile(f1, name1);
 Reset(f1);
 Seek(f1, Filesize(f1));
 AssignFile(f2, name2);
 Reset(f2);
 GetMem(buf, 65000);
 repeat
   BlockRead(f1, buf^, 65000, xfer);
   BlockWrite(f2, buf^, xfer);
 until
   xfer < 65000;
 CloseFile(f1);
 CloseFile(f2);
end;

способ 2:

Procedure TForm1.ThisISHowIPutFilesIn ;
var
 ABigFileStream, SomeSmallFiles : TMemoryStream ;

begin
 ABigFileStream := TMemoryStream.Create ;
 try
   SomeSmallFiles := TMemoryStream.Create ;
    try
     SomeSmallFiles.LoadFromFile("C:\SomeSmalFile1.txt");
     AddToStream(SomeSmallFiles,ABigFileStream);
     SomeSmallFiles.LoadFromFile("C:\SomeSmalFile2.txt");
     AddToStream(SomeSmallFiles,ABigFileStream);
     // enz
    finally
     SomeSmallFiles.Free ;
    end;
 ABigFileStream.SaveToFile("C:\MrBig.DDD")
 finally
 ABigFileStream.free ;
 end;
end;

Procedure TForm1.ThisISHowIGetStufOut ;
var
 ABigFileStream, SomeSmallFiles : TMemoryStream ;

begin
 ABigFileStream := TMemoryStream.Create ;
 try
   ABigFileStream.LoadFromFile("C:\MrBig.DDD");
   SomeSmallFiles := TMemoryStream.Create ;
    try
     GetFromStream(ABigFileStream,SomeSmallFiles,0);
     SomeSmallFiles.SaveToFile("C:\SomeSmalFile1.txt");
     GetFromStream(ABigFileStream,SomeSmallFiles,1);
     SomeSmallFiles.SaveToFile("C:\SomeSmalFile2.txt");
     // и т.д.
    finally
     SomeSmallFiles.Free ;
    end;
 finally
 ABigFileStream.free ;
 end;
end;

Procedure TForm1.AddToStream ( Source , Dest : TStream );
var
Size : Integer ;
begin
Source.position := 0 ;
// Сохраняем размер, помещая его в первый байт
Size := Source.Size ;
Dest.Write(Size,SizeOf(Integer));
Dest.CopyFrom(Source,Source.size);
end;

Procedure TForm1.GetFromStream ( Source , Dest : TStream ; Index : Integer  );
Var
 Size , I : Integer ;

begin
Source.Position := 0 ;
For i := 0 to index-1 do
  begin
    Source.Read(Size,SizeOf(Integer));
    Source.Position := Source.Position + Size ;
  end;
// Если марк&#184;р в файле равен размеру, то что-то пошло не так :(
if Source.position = Source.Size then
 Raise EAccessViolation.Create("Index Out Of Bounds") ;
// Получаем желаемый размер файла
Source.Read(Size,SizeOf(Integer));
// Очищаем буфер у Dest
Dest.Position := 0 ;
Dest.Size := 0 ;
Dest.CopyFrom(Source,Size);
end;

(с) DelphiWorld - и вопросов будет меньше.



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.101 c
2-1177592173
sadasd
2007-04-26 16:56
2007.05.20
TClientSocket


2-1177744269
Alex7
2007-04-28 11:11
2007.05.20
Отбражение в DBGrid длинного формата времени


3-1172784728
weer
2007-03-02 00:32
2007.05.20
Как вставить картинку из базы в Access в Delphi


2-1178273173
Doom-2
2007-05-04 14:06
2007.05.20
Как запустить приложения по очереди?


2-1177747186
Vlad Oshin
2007-04-28 11:59
2007.05.20
Excel неправильно выдает гиперссылки у ячеек. Почему?