Entwickler-Ecke
Sonstiges (Delphi) - speichern von strings und variablen
Arctics - Mi 22.11.06 17:36
Titel: speichern von strings und variablen
das speichern von strings usw. wäre mir sehr hilfreich beim erstellen (z.B.) einer Highscoreliste
jasocul - Mi 22.11.06 17:38
Ich würde Dir den Einsatz von INI-Dateien empfehlen.
Leuchtturm - Mi 22.11.06 17:38
Delphi-Quelltext
1: 2: 3: 4: 5:
| var a: string; begin a := 'Hallo'; Label1.Caption := a; |
oder mit einer Stringlist.
Leuchtturm
PS:Deine Probleme müsstest du mit der suche eigentlich auch finden :wink:
Leuchtturm - Mi 22.11.06 17:41
jasocul hat folgendes geschrieben: |
| Ich würde Dir den Einsatz von INI-Dateien empfehlen. |
na gut für eine Highscore wäre eine ini-Datei besser
Arctics - Mi 22.11.06 17:45
Leuchtturm hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5:
| var a: string; begin a := 'Hallo'; Label1.Caption := a; |
oder mit einer Stringlist.
Leuchtturm
PS:Deine Probleme müsstest du mit der suche eigentlich auch finden :wink: |
ich habe vor eine highscore liste zu machen, wenn man dann seinen namen einträgt und das programm beendet und dann wieder aufruft wurde der name doch "vergessen" und genau dass sollte ja nicht passieren
Leuchtturm - Mi 22.11.06 17:48
Arctics hat folgendes geschrieben: |
Leuchtturm hat folgendes geschrieben: | Delphi-Quelltext 1: 2: 3: 4: 5:
| var a: string; begin a := 'Hallo'; Label1.Caption := a; |
oder mit einer Stringlist.
Leuchtturm
PS:Deine Probleme müsstest du mit der suche eigentlich auch finden :wink: |
ich habe vor eine highscore liste zu machen, wenn man dann seinen namen einträgt und das programm beendet und dann wieder aufruft wurde der name doch "vergessen" und genau dass sollte ja nicht passieren |
dann schaue dir mal jasocul's
Link [
http://www.delphi-library.de/viewtopic.php?t=182&highlight=inifile] an
Arctics - Mi 22.11.06 17:51
Leuchtturm hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5:
| var a: string; begin a := 'Hallo'; Label1.Caption := a; |
oder mit einer Stringlist.
Leuchtturm
PS:Deine Probleme müsstest du mit der suche eigentlich auch finden :wink: |
ich habe vor eine highscore liste zu machen, wenn man dann seinen namen einträgt und das programm beendet und dann wieder aufruft wurde der name doch "vergessen" und genau dass sollte ja nicht passieren
Arctics - Mi 22.11.06 18:07
ich hab mir mal
Das hier [
http://www.dsdt.info/tipps/?id=104]
angeschaut um überhaupt mal was über ini zu erfahren - habs natürlich auch gleich ausprobiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.FormCreate(Sender: TObject); var Ini: TIniFile; begin try Ini:=TIniFile.Create('C:\Test.ini'); Ini.WriteString('Section','Schlüssel1','Wert'); Ini.WriteInteger('Section','Schlüssel2',10); Ini.WriteBool('Section','Schlüssel3',True); finally Ini.Free; end; end; |
aber da kamen folgede probleme :
| Zitat: |
[Error] Unit1.pas(37): Undeclared identifier: 'TIniFile'
[Error] Unit1.pas(40): Missing operator or semicolon
[Error] Unit1.pas(40): Incompatible types: 'TComponent' and 'String'
[Error] Unit1.pas(41): Missing operator or semicolon
[Error] Unit1.pas(42): Missing operator or semicolon
[Error] Unit1.pas(43): Missing operator or semicolon
[Error] Unit1.pas(45): Missing operator or semicolon
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
|
was hab ich denn falsch gemaccht?
Moderiert von
jasocul: Quote-Tags durch Delphi-Tags ersetzt
Marc. - Mi 22.11.06 18:14
Fehlermeldung markieren und F1 drücken ;)
Hast du nebenbei bemerkt, auch die Unit Inifiles in deinem Projekt mit eingebunden?
grüße marc
Arctics - Mi 22.11.06 18:18
Marc. hat folgendes geschrieben: |
Fehlermeldung markieren und F1 drücken ;)
Hast du nebenbei bemerkt, auch die Unit Inifiles in deinem Projekt mit eingebunden?
grüße marc |
danke hat geklappt :D :)
aber nun müsste doch die datei test.ini in c:\ erstellt werden? oder hab ich da was fasch verstanden?
BerTeL - Mi 22.11.06 19:08
Genau du hast es erfasst ... und um es irgendwo anders zu speichern einfach anstatt C:\ C:\xyz\ eingeben ...
Arctics - Mi 22.11.06 19:22
ja, aber das ist nicht da :(
Popov - Mi 22.11.06 19:25
Hier ein kleines Beispiel. Die INI wird im gleichen Verzeichnis wie das Programm automatisch erstellt, Du mußt nichts machen. Für das Beispiel habe ich meine Unit "EasyIniAppExe.pas" benutzt. Die findest du hier:
http://www.delphi-forum.de/viewtopic.php?p=127274#127274 . Ich hoffe du weißt wie man eine Unit einbindet?
Der Rest ist einfach. Zuerst erstellen wir Beispieldateien:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| uses EasyIniAppExe;
type THighScore = Record Name: String; Points: Integer; end;
var HighScore: Array[1..3] of THighScore; |
Dann Beispiel für das Sichern:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin HighScore[1].Name := 'Paul'; HighScore[1].Points := 24566; HighScore[2].Name := 'Klaus'; HighScore[2].Points := 12534; HighScore[3].Name := 'Jörg'; HighScore[3].Points := 42134;
EraseIniSection('HighScorePunkte');
for i := 1 to 3 do WriteIniInteger('HighScorePunkte', HighScore[i].Name, HighScore[i].Points); end; |
Jetzt noch das Zurücklesen:
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:
| procedure TForm1.Button2Click(Sender: TObject); var sl: TStringList; i: Integer; begin for i := 1 to 3 do begin HighScore[i].Name := ''; HighScore[i].Points := 0; with HighScore[i] do ShowMessage(Format('Nur Test!!!!! Platz %d: %s, %d', [i, Name, Points])); end;
sl := TStringList.Create; try ReadIniSection('HighScorePunkte', sl); for i := 0 to sl.Count - 1 do begin HighScore[i+1].Name := sl[i]; HighScore[i+1].Points := ReadIniInteger(sl[i], 'Points', -1); end; finally sl.Free; end;
for i := 1 to 3 do with HighScore[i] do ShowMessage(Format('Platz %d: %s hat %d Punkte', [i, Name, Points]));
end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!