Ich hab in letzter Zeit auch einmal einen Installer programmiert und irgendwie finde ich des alle hier etwas vom Thema abgekommen sind denn ihr schreibt des es sich nichts bringt doch er wollte doch nur wissen wie man Dateien mitanander verschmelzt
.
Also werd ich da jetzt ein bischen Code rüberschieben:
(Quelle: Easy Helper //recht praktisch)
Ich hab nur noch ein paar komentare hinzugefügt!
Code:
procedure Join(Main_FileName, Hidden_Filename : string);
var
MainFile : TFileStream;
HiddenFile : TFileStream;
SizeOfFile : Cardinal; // Größe der Hauptdatei
SearchWord : string[10]; //Für die Speicherung der Orginalgröße
begin
MainFile := TFileStream.Create(Main_FileName, fmOpenReadWrite or fmShareDenyWrite);
try
SizeOfFile := MainFile.Size; // Größe der Hauptdatei speichern
HiddenFile := TFileStream.Create(Hidden_Filename, fmOpenRead or fmShareDenyNone);
try
MainFile.Seek(0, soFromEnd); //Ich muss gestehen das hab ich auch noch nicht
//richtig verstanden. :oops:
MainFile.CopyFrom(HiddenFile, 0); //Zweitei datei zur ersten hinzufügen
MainFile.Seek(0, soFromEnd); //Immer noch nicht verstanden
finally
HiddenFile.Free;
end;
SearchWord := IntToStr(SizeOfFile) + #0; //Die größe der Hauptfile auswerten
MainFile.Seek(0, soFromEnd);
MainFile.WriteBuffer(SearchWord, SizeOf(SearchWord)); //abspeichern
finally
MainFile.Free;
end;
end;
procedure Split(Main_FileName, NewFromMain_Filename : string);
var
MainFile : TFileStream;
SplitFile : TFileStream;
HelpStr : string[10]; //wieder größe der Hauptdatei
GetSize : integer;
begin
MainFile := TFileStream.create(Main_FileName, fmOpenReadWrite or fmShareDenyWrite);
try
SplitFile := TFileStream.Create(NewFromMain_Filename, fmCreate or fmShareDenyNone);
try
MainFile.Position := MainFile.Size - 11; //Zum auslesen Positon von Helpstr bestimmen
MainFile.Read(HelpStr, 10); //auslesen
GetSize := StrToInt(HelpStr); //abspeichern
MainFile.Position := GetSize; //position der zweiten datei festlegen
SplitFile.CopyFrom(MainFile, MainFile.Size-GetSize); //auslesen
SplitFile.Size := SplitFile.Size - 11; //bei zweier datei hilfe text abschneiden
MainFile.Size := GetSize; //Haupt datei auf Orginalgröße abschneiden kann auch wegelassen werden falls die Hauptfile die Datei behalten soll!
finally
SplitFile.Free;
end;
finally
MainFile.Free;
end;
end;
Ich hoff des konnte dir helfen
gsh