Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi INI in EXE einbinden (https://www.delphipraxis.net/48039-ini-exe-einbinden.html)

N47R0N 19. Jun 2005 20:10


INI in EXE einbinden
 
Hi @ all

Ich weiß das meine Überschrift nicht gerade gut ist , denn ich meine nicht wie man eine EXE dazu bringt daten aus einer INI zu verwenden sondern :

Ich will wissen ob es möglich ist an eine EXE datei eine INI anhängen kann die beim Ausführen der EXE erst in ein bestimmten Ordner installiert wird .

So soll das ganse funktionieren :

Mein Hauptprogramm heist z.B Start.exe und ist in einem Ordner ( egal welchem ) . Die Start.exe ist darauf angewiesen bestimmte Daten aus einer INI datei zu lesen .

Im Selben Ordner soll sich eine art Editor befinden . Den Öffnet man und kann gans leicht seine Angaben machen die in die INI geschrieben werden . Wenn man nun im Editor auf Fertig stellen drückt soll die INI datei in die Start.exe eingefügt werden .

Wenn die Start.exe nun ausgeführt wird , soll dann wie gesagt die INI in einen bestimten Ordner entpackt werden .


Leider habe ich keinen schimmer von solchen vorgängen und hoffe Unterstützung .

Danke

glkgereon 19. Jun 2005 20:36

Re: INI in EXE einbinden
 
wie Wäre es mit

Delphi-Quellcode:
ST:=TStringList.Create;
ST.Add('[Dings]');
ST.Add('Achso = 1');
ST.Add('[Brummli]');
ST.Add('DingensDa = 2');
ST.Add('UnUeberhauptUndSo = Sodele');
ST.Add('Letztes = Allerletzes');
ST.SaveToFile('Folder/File.ini');
oder nich?

Edit(Vergessen):
Das ganze in Verbindung mit nem TFileStream der die entsprechenden Stellen ersetzt...
dass müsste man halt mit höchstgrenzen für die StringLänge machen, sodass der Rest mit Leerzeichen gefüllt wird, die im Add-Aufruf mit nem Statischen Trim() wieder gekillt werden könnten....

N47R0N 19. Jun 2005 20:41

Re: INI in EXE einbinden
 
Ich weiß wie man eine INI erstellt nur will ich wissen wie man sie an eine EXE Binde und dafür sorgt das wenn die EXE ausgeführt wird dir INI mit ihren gansen inhalt der schon bearbeitet wurde in einen Ordner entpackt und von der EXE benutzt werden kan.

glkgereon 19. Jun 2005 20:45

Re: INI in EXE einbinden
 
ja so:

(im OnCreate oder so aufrufen...)

Delphi-Quellcode:
procedure CreateIni;
var SL: TStringList;
begin
  SL:=TStringList.Create;
  SL.Add(Trunc('[Dings]                  '));
  SL.Add(Trunc('Achso = 1                 '));
  SL.Add(Trunc('[Brummli]                '));
  SL.Add(Trunc('DingensDa = 2             '));
  SL.Add(Trunc('UnUeberhauptUndSo = Sodele'));
  SL.Add(Trunc('Letztes = Allerletzes    '));
  SL.SaveToFile('Folder/File.ini');
  SL.Free;
end;
wobei das was halt innerhalb der Trunc() steht geändert werden müsste

das Ändern:
Hier im Forum suchenTFileStream

malo 19. Jun 2005 20:45

Re: INI in EXE einbinden
 
Zitat:

Zitat von N47R0N
Ich weiß wie man eine INI erstellt nur will ich wissen wie man sie an eine EXE Binde und dafür sorgt das wenn die EXE ausgeführt wird dir INI mit ihren gansen inhalt der schon bearbeitet wurde in einen Ordner entpackt und von der EXE benutzt werden kan.

Ich verstehe dein Problem grad nicht :gruebel:

glkgereon hat doch so einen Weg gezeigt. Das ganze dann ins Oncreate des Forms (bzw. wahlweise auch in die Projektdatei) schreiben und die Exe starten ;)

Hansa 19. Jun 2005 20:46

Re: INI in EXE einbinden
 
Was soll denn das ? Entweder wird was fest eincompiliert in die EXE, oder es kommt sonstwo hin, z.B. INI. Es geht nur darum EBEN NICHTS an der Exe zu ändern !! Genau das willst du aber machen. Wenn jetzt jemand eine Fehlermeldung angibt, dann kannst du es eventuell nicht mal mehr genau lokalisieren, sofern an der EXE rumgefummelt wurde. Also : Wozu soll das gut sein ?

N47R0N 19. Jun 2005 20:58

Re: INI in EXE einbinden
 
damit wollte ich einstellungen an der fertigen exe vornehmen ohne stark in den eigendlichen source ein zu greifen

Hansa 19. Jun 2005 21:04

Re: INI in EXE einbinden
 
So macht man das aber nicht ! Dafür sind doch INIs usw. da. Es ist viel einfacher eine Ini zu verändern, die von einer EXE ausgelesen wird, als die EXE zu verbiegen. 8) Natürlich muß der Source in der Lage sein, die INI richtig zu verarbeiten. Notfalls EXE+INI neu ausliefern. Zumindest nicht ein Programm, das eine vorhandene EXE vergewaltigt.

glkgereon 19. Jun 2005 21:12

Re: INI in EXE einbinden
 
wieso Hansa?

man müsste Halt nur versuchen für den IniTeil den String vorerst eindeutig zu machen...zum finden.

Genau hier sehe auch ich dass Problem:
dass man eben NIE mit 100%iger Sicherheit sagen kann: Dieser String kommt hier, und NUR hier vor in der exe...man kann also nie ganz ausschließen dass man ausversehen ein stückchen "code" verhackstückt.

Ist der String richtig gewählt sollte dieses Problem imho jedoch praktisch ausgeschlossen sein...

malo 19. Jun 2005 21:15

Re: INI in EXE einbinden
 
Zitat:

Zitat von glkgereon
wieso Hansa?

man müsste Halt nur versuchen für den IniTeil den String vorerst eindeutig zu machen...zum finden.

Genau hier sehe auch ich dass Problem:
dass man eben NIE mit 100%iger Sicherheit sagen kann: Dieser String kommt hier, und NUR hier vor in der exe...man kann also nie ganz ausschließen dass man ausversehen ein stückchen "code" verhackstückt.

Ist der String richtig gewählt sollte dieses Problem imho jedoch praktisch ausgeschlossen sein...

Naja, theoretisch könnte man das ganze auch disassemblieren und dann via Assembler die richtige Stelle auslesen und beschreiben. Ob sich der ganze Aufwand jedoch lohnt, ist fraglich ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 1 von 2  1 2      

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