| Autor |
Beitrag |
Chrischuh
      
Beiträge: 124
Erhaltene Danke: 1
Win 7
Turbo Delphi
|
Verfasst: Di 20.01.09 14:47
Hallo,
ist es möglich eine stringlist in einer exe zu speichern?
ich nutze folgene funktion um eine ressource zu laden:
Delphi-Quelltext 1:
| ResourceStream:= TResourceStream.Create (hinstance, 'NAME', RT_RCDATA); |
Geht das auch umgekehrt? Also den ResourceStream wieder in den Resourcen speichern.
Wahrscheinlich darf die Exe zur Laufzeit nich geändert werden, deswegen möchte ich das mit einer 2. Exe machen.
Oder ist das unnötig.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 20.01.09 15:55
Moin!
Chrischuh hat folgendes geschrieben : | | ist es möglich eine stringlist in einer exe zu speichern? |
Jain, du kannst aber die Stringliste mit SL.CommaText in einen String verwandeln, welchen du relativ problemlos in Ressourcenblock ablegen können solltest.
Chrischuh hat folgendes geschrieben : | | Wahrscheinlich darf die Exe zur Laufzeit nich geändert werden, deswegen möchte ich das mit einer 2. Exe machen. |
Löschen kann man eine aktive EXE nicht, aber umbenennen, deshalb würde es mich nicht wunden, wenn man auch den Inhalt ändern können sollte.
Es gab hier mal ein Projekt (ich weiß leider nicht mehr von wem oder wie´s hieß), bei dem es darum ging, Ressourcen zu Lesen und zu Schreiben. Such doch mal ein bischen hier.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 20.01.09 16:05
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 20.01.09 17:01
So, ich habe grade mal eine kleine Demo geschrieben, diese liegt im Anhang. Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| RenameFile(ParamStr(0), ChangeFileExt(ParamStr(0), '.exe.bak')); CopyFile(PChar(ChangeFileExt(ParamStr(0), '.exe.bak')), PChar(ParamStr(0)), True); FileContents := TFileStream.Create(ParamStr(0), fmOpenReadWrite); ...
FileContents.Free; ShellExecute(Handle, 'open', PChar(ParamStr(0)), '/delbak', PChar(ExtractFileDir(ParamStr(0))), SW_SHOWNORMAL); Close; | Und in FormCreate die zweite Datei löschen: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm136.FormCreate(Sender: TObject); begin {$B-} if (ParamCount > 0) and (ParamStr(1) = '/delbak') then while FileExists(ChangeFileExt(ParamStr(0), '.exe.bak')) do begin DeleteFile(ChangeFileExt(ParamStr(0), '.exe.bak')); Sleep(1); end; end; |
In der Demo hänge ich jetzt Daten an die Exe an, das mache ich aber nur um zu zeigen, dass die Exe so verändert werden kann. Du kannst an der Stelle dann deine Ressource verändern. (Aber da weiß ich aus dem Kopf nicht wo ich da was verändern muss, deshalb hab ich das in der Demo nicht gemacht.  )
Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 20.01.09 17:46
Moin!
@ jaenicke: Irgendwie sehe ich das Thema jetzt schon mehrfach.  Da lohnt doch schon fast ein FAQ-Eintrag, oh großer Tutorializer...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 20.01.09 19:53
Aus der Überlegung heraus habe ich das auch geschrieben.
Aber ich bin mit dem letzten ja noch nicht fertig. Und und...
Aber sonst hätte ich bei einem Beispiel nicht so darauf geachtet, dass es einigermaßen sauber geschrieben ist. 
|
|
Chrischuh 
      
Beiträge: 124
Erhaltene Danke: 1
Win 7
Turbo Delphi
|
Verfasst: Di 20.01.09 20:31
super, genau was ich gesucht hatte. Danke
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 26.01.09 07:51
Ich habe soeben eine einfach zu benutzende Lösung als Beta veröffentlicht:
www.delphi-forum.de/viewtopic.php?p=545927
Im FAQ Beitrag werde ich diese genauer erklären, und ich bin dabei diese für Delphi 3-6 und Delphi 2009 anzupassen.
www.delphi-library.d...ewtopic.php?p=545198
|
|
|