![]() |
In eine Datei
Hi!
Wie kann ich machen das alle ausgewählten Dateien nach einander in eine Datei Geschrieben werden? (Auch bilder,...) |
Re: In eine Datei
Hämg sie alle aneinander.
|
Re: In eine Datei
Womit?
|
Re: In eine Datei
AssignFile, Reset, Rewrite, BlockRead, BlockWrite oder
FileOpen, FileSeek, FileRead, FileWrite, FileClose. |
Re: In eine Datei
Was Luckie meint, geht auch mit einem netten DOS-Befehl:
Code:
in einer *.bat oder *.cmd (cmd für Win NT/2000/XP...)
Copy "Datei.1" + "Datei.2" + "Datei.3" "Ziel.Datei"
{oder} Copy "Datei.1" + "Datei.2" "Ziel.Datei" Copy "Ziel.Datei" + "Datei.3" "Ziel.Datei" Copy "Ziel.Datei" + "Datei.4" "Ziel.Datei" Da du aber die Dateien bestimmt wieder zerlegen oder auf einzelne Dateien zugreifen willst, solltest du noch etwas mit in die kombinierte Datei aufnehmen. (z.B. Dateigrössen)
Delphi-Quellcode:
Falls es nötig ist, kann'st noch ein Tag zu Kennzeichnung einfügen.
Datei 1 - Dateigrösse (4 Byte - Integer)
Datei 1 - Daten Datei 2 - Dateigrösse (4 Byte - Integer) Datei 2 - Daten ...
Delphi-Quellcode:
'Dateibeginn'
Datei 1 - Dateigrösse (4 Byte - Integer) Datei 1 - Daten 'Dateibeginn' Datei 2 - Dateigrösse (4 Byte - Integer) Datei 2 - Daten ... |
Re: In eine Datei
Diese Routine hängt eine Datei an eine andere dran:
Delphi-Quellcode:
function AttacheFile(StubFile, AttacheFile: string): Integer;
var hStubFile, hAttacheFile: THandle; MemBuffer: array[0..BLOCKSIZE - 1] of Byte; StubFileSize, AttacheFileSize, BytesRead, BytesToRead, BytesWritten, TotalBytesWritten: Int64; PercentDone, PercentDoneOld: Cardinal; begin BytesRead := 1; TotalBytesWritten := 0; PercentDoneOld := 0; hStubFile := FileOpen(StubFile, $0001); if hStubFile <> INVALID_HANDLE_VALUE then begin StubFileSize := GetFileSize(pointer(StubFile)); FileSeek(hStubFile, StubFileSize, 0); hAttacheFile := FileOpen(AttacheFile, 0); AttacheFileSize := GetFileSize(pointer(AttacheFile)); if hAttacheFile <> INVALID_HANDLE_VALUE then begin SendMessage(hApp, EFM_FILENAME, 0, lParam(PChar(AttacheFile))); while TotalBytesWritten < AttacheFileSize do begin BytesToRead := CalcBytesToRead(BytesRead, AttacheFileSize); BytesRead := FileRead(hAttacheFile, MemBuffer, BytesToRead); BytesWritten := FileWrite(hStubFile, MemBuffer, BytesRead); TotalBytesWritten := TotalBytesWritten + BytesWritten; PercentDone:= (TotalBytesWritten * 100) div AttacheFileSize; if PercentDone <> PercentDoneOld then begin SendMessage(hApp, EFM_PROGRESS, 0, PercentDone); PercentDoneOld := PercentDone; end; ProcessMessages(hApp); end; end; FileClose(hAttacheFile); end; FileClose(hStubFile); SendMessage(hApp, EFM_FINISH, GetLastError(), lParam(PChar(AttacheFile))); result := GetLastError(); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz