Thema: Delphi Eigenes Install-Prog

Einzelnen Beitrag anzeigen

Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#8

Re: Eigenes Install-Prog

  Alt 20. Jan 2005, 00:17
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
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat