![]() |
ReUniteFile - trennen
Morgen, :)
ich habe mir diese Procedure im ![]()
Delphi-Quellcode:
Sie wird hierdurch aufgerufen:
procedure ReUniteFile(const Files: TStrings; const FileName: string);
var f1, f2: TFileStream; i: integer; begin f1 := TFileStream.Create(Filename, fmCreate or fmShareDenyWrite); try for i:=0 to Files.Count-1 do begin f2 := TFileStream.Create(Files[i], fmOpenRead or fmShareDenyNone); try f1.CopyFrom(f2, 0); finally f2.Free; end; end; finally f1.Free; end; end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringlist; begin sl := TStringlist.Create; try sl.Add('c:\Bild.bmp.001'); sl.Add('c:\Bild.bmp.002'); ReUniteFile(sl, 'c:\NeuesBild.bmp'); finally sl.Free; end; end; ich weiß aber nicht, wie ich diese Dateien wieder trennen kann.... :roll: Wahrscheinlich verstehe ich das nicht, kann mir da einer helfen? mfg Johannes013 |
Re: ReUniteFile - trennen
Du musst wissen, wie groß die Dateien sind, welche du da reinschreibst.
|
Re: ReUniteFile - trennen
und soll ich sie dann splittern?
|
Re: ReUniteFile - trennen
Zitat:
ja? Speichere doch einfach die Dateigrößen mit, dann weißt du beim Auslesen, wieviel der Daten zur aktuellen Datei gehören. Es sei denn die Dateien haben feste/bekannte Größen und du speicherst die Größen direkt im QuellCode.
Delphi-Quellcode:
procedure ReUniteFile(const Files: TStrings; const FileName: string);
var f1, f2: TFileStream; i, i2: Integer; begin f1 := TFileStream.Create(Filename, fmCreate or fmShareDenyWrite); try for i:=0 to Files.Count-1 do begin f2 := TFileStream.Create(Files[i], fmOpenRead or fmShareDenyNone); try i2 := f2.Size; f1.WriteBuffer(i, SizeOf(i)); f1.CopyFrom(f2, 0); finally f2.Free; end; end; finally f1.Free; end; end; |
Re: ReUniteFile - trennen
ähhh, ich weiß nicht wirklich, wie ich die Dateien dann auslesen soll. :!:
|
Re: ReUniteFile - trennen
Was ist den die Umkehrung von Write?
|
Re: ReUniteFile - trennen
Etirw? :lol:
|
Re: ReUniteFile - trennen
Genau :stupid: Jetzt musst du ihm diese Funktion nur noch implementieren
|
Re: ReUniteFile - trennen
Nichts leichter als das
Delphi-Quellcode:
:mrgreen:
TStreamExt = class helper for TStream
function Etirw(var Buffer; Count: Longint): Longint; end; implementation function Etirw(var Buffer; Count: Longint): Longint; begin Result := Read(Buffer,Count); end; |
Re: ReUniteFile - trennen
Das geht auch noch anders (für ältere Delphi-Versionen), aber die Mühe mache ich mir jetzt nicht :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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-2025 by Thomas Breitkreuz