AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ressourcen-Datei - Zip hineinpacken und extrahieren per Code
Thema durchsuchen
Ansicht
Themen-Optionen

Ressourcen-Datei - Zip hineinpacken und extrahieren per Code

Ein Thema von Guido Eisenbeis · begonnen am 14. Feb 2020 · letzter Beitrag vom 16. Feb 2020
 
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.679 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ressourcen-Datei - Zip hineinpacken und extrahieren per Code

  Alt 14. Feb 2020, 22:29
Delphi-Quellcode:
{ Der ResType sollte immer ein PChar sein, damit man die vordefinierten Konstanten verwenden kann (RT_BITMAP, RT_STRING, RT_RCDATA, ...)
  Dabei handelt es sich nicht wirklich um Strings, sondern um als Pointer (auf Strings) getarnte numerische Konstanten im niedrigen Wertebereich.
  RT_RCDATA ist demnach als PChar(10) definiert - an Adresse 10 kann aber kein brauchbarer String im Speicher liegen und das weiß Windows.
  Deswegen kann man diese Konstanten auch nicht in einen String packen und dann später wieder auf PChar casten.
}

function ExtractRes(ResType: PChar; const ResName, ResNewName: string): Boolean;
var
  Res: TResourceStream;
begin
  Res := TResourceStream.Create(hInstance, Resname, ResType);
  try
    Res.SavetoFile(ResNewName);
  finally
    Res.Free;
  end;
  Result := True;
end;



procedure TForm1.Button1Click(Sender: TObject);
var
  sResName: string;
  sPathOfZipFileFromRes: string;
begin
  sResName := 'MYTEST';
  sPathOfZipFileFromRes := ExtractFilePath(ParamStr(0)) + 'MyTest.zip'; // ExtractFilePath enthält bereits den Backslash

  // Extrahieren der Zip-Datei aus der Ressourcen-Datei.
  if ExtractRes(RT_RCDATA, UpperCase(sResName), sPathOfZipFileFromRes) then // RT_RCDATA ist die vordefinierte Konstante für RCDATA Resourcen
  begin
    // Code zum Extrahieren der Daten aus der Zip-Datei.
    // ...
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 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