Entwickler-Ecke
Dateizugriff - Variablen in eigenem Programm speichern?
hallo - Do 08.07.04 13:33
Titel: Variablen in eigenem Programm speichern?
Hi,
wie kann ich die Programmkonfiguration im eigenem Programm speichern?
Ich will das ungefähr so machen: Ich habe ein Programm mit Einstellungen(z.B. username in einem Textfeld) und diese will ich IM Programm nach dem Beenden speichern.
D.H. wenn ich jetzt dieses Programm an einem anderen Comüputer starte, müssen die Einstellungen noch da sein.
Ich weiß, dass das mit den Antivirenprogrammen sehr problematisch wird, denn diese halten das dann warscheinlich für einen Virus weil sich die Datei dann halt verändert.
DANKE
Moderiert von
Tino: Topic aus Sonstiges verschoben am So 11.07.2004 um 09:42
Anonymous - Do 08.07.04 13:42
Titel: Re: Variablen in eigenem Programm speichern?
hallo hat folgendes geschrieben: |
Ich weiß, dass das mit den Antivirenprogrammen sehr problematisch wird, denn diese halten das dann warscheinlich für einen Virus weil sich die Datei dann halt verändert. |
Wurde hier zwar schon öfter erzählt, halte ich aber für groben Unfug. (Siehe Delphi-Compiler)
Das Problem ist dass du während das Programm läuft nicht schreibend darauf zugreifen kannst. Du könntest es aber so machen:
Du kopierst von der Datei die Bytes, die nicht zur Konfiguration gehören in eine Datei (irgendwas.bla)
In eine 2. die Konfiguration (conf.bla)
Du erstellst eine .bat-Datei mit folgendem Inhalt:
Quelltext
1: 2: 3: 4:
| copy /B irgendwas.bla + conf.bla dateiname.exe del irgendwas.bla del conf.bla del %0.bat |
Jetzt musst Du die datei (irgendwas.bat) ausführen und dein Programm normal beenden lassen. Die Einstellungen kannst du dann entweder per Stream oder über pbyte(oder sonstwas)($00400000 + dateigröße + index)^ lesen.
MartinPb - Do 08.07.04 13:52
Hier hat mal einer behauptet, daß es Unit gibt mit der man die Ressource des eigenen Programms zur Laufzeit verändern kann. Ich weiß nicht ob es stimmt. Wenn es aber stimmt, dann gibt es sowas wie Ressourcestrings. Das sieht in etwa so aus:
Delphi-Quelltext
1: 2: 3:
| resourcestring Var1 = 'Wert1'; Var2 = 'Wert2'; |
Ein Ressourcestring ist eine Ressource. Wenn es also möglich ist eine Ressource zu ändern, dann kannst du auch den Wert des Strings ändern. Schon hast du die Werte im Programm gesichert.
Jetzt mußt du dich nur noch auf die Suche nach der Unit machen, die zur Laufzeit die Ressourcen verändern kann.
Delete - Do 08.07.04 22:31
Motzi hat so eine Unit geschrieben.
@obschtkuche: Der Compiler wird sie vorher löschen. Es wird also keine Anwendung geändert, sondern nur neu erstellt. ;)
hallo - Fr 09.07.04 13:06
Wo gibt es diese Unit?
h-design - Sa 10.07.04 12:53
Hi,
Ich hab auch nach diesem Problem lange gesucht, Turbopascal Bücher nicht wegwerfen, weil dort noch vieles beschrieben ist, was leider in der Delphi Hilfe nicht mehr auftaucht.
Hier die Lösung:
Erstelle erst im Unit-Kopf einen eigenen Record
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| TYPE daten_ : RECORD a : Integer; b : Boolean; c : STRING[100]; end;
var
daten : daten_;
implementation
procedure speichern; var f : file of daten_; datei : string; begin
datei:='ini.dat'; assign(f,datei); rewrite(f); write(f,daten); close (f);
end;
procedure lesen; var f : file of daten_; datei : String; begin datei:='ini.dat'; assign(f,datei); reset(f); while not EOF(f) do begin Read(f,daten); end; close(f); end; |
Gruss Herbert
Moderiert von
Peter Lustig: Delphi-Tags hinzugefügt.
maximus - Sa 10.07.04 14:38
@Herbert: Du bist lustig...das ist so ziemlich das erste was man als Pascal/delphi programmierer kann. Das war aber nicht die frage. Er will daten in der laufenden exe speichern. Da sind dann die meisten mit ihrem latien am ende :wink:
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!