Entwickler-Ecke
Dateizugriff - Datein in *.EXE einbinden
madmat - Do 25.07.02 23:46
Titel: Datein in *.EXE einbinden
Hi @ all,
wie kann man z.B. eine leere Access DB (als Absicherung) mit in eine EXE Datein einbinden und bei Bedarf aus der EXE auf Platte kopieren ?
Ich hab die DB jetzt mit brcc32.exe in eine *.res Datei umgewandelt und nun ?
Wie kann ich sie jetzt in die EXE einbinden und z.B auf Buttonclick wieder auf dem Datenträger speichern ?
Die RES Datei hab ich jetzt per
Quelltext
1: 2: 3:
| implementation {$R *.DFM} {$R DBRES.res} |
eingebunden.
Die Extractionsfunktion hab ich mir zusammengesucht , die sieht jetzt ungefähr so aus :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function ExtractRes(ResType, ResName, ResNewName: string): Boolean; var Res: TResourceStream; begin Result := False; Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType)); try Res.SavetoFile(ResNewName); Result := true; finally Res.Free;
end; end; |
Aber wie rufe ich das Ganze jetzt auf ? Bin ein wenig ratlos,
Danke im Voraus..
hitstec - Fr 26.07.02 02:09
Einfacher gehts so: Mit brcc32 die Datei kompilieren, aber auf diese Weise
Quelltext
1:
| ACCESSDB RCDATA C:\DBRES.dbf |
oder so ähnlich, wichtig ist, dass du als Typ RCDATA nimmst.
dann ins Projekt einbinden
und die Funktion um die Datei zu extrahieren:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function ExtRes(ResName,sZiel: string): Bool; var stmResource: TResourceStream; begin result:=true; try stmResource:=TResourceStream.Create(0,ResName,RT_RCDATA); try stmResource.SaveToFile(sZiel); except result:=false; end; stmResource.free; except result:=false; end; end; |
Und zur Laufzeit die Datei entpacken:
Quelltext
1:
| if ExtRes('ACCESSDB','C:\dtabase.dbf') then ShowMessage('Datei extrahiert.'); |
Eine Idee wäre die Datei zusätzlich mit
ZLib zu komprimieren und zur Laufzeit zu dekomprimieren. So würde man noch die EXE-Datei kleiner halten.
cbs - Fr 26.07.02 15:51
tag auch
matze hat folgendes geschrieben: |
oder du verschmilzt die DB mit deiner EXE |
funktioniert dann aber noch die EXE? ich glaube nicht!
matze - Fr 26.07.02 18:46
doch !! Das hauptfile bleibt ausführbar !!!
EDH hat folgendes geschrieben: |
Nach dem verschmelzen ist die Hauptfile immer noch voll ausführbar (wenn sie keinen CRC Check oder so was besitzt) und die 2. Datei in der Hauptdatei drin. |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!