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 Werte von Integer in Textdatei speichern (https://www.delphipraxis.net/134763-werte-von-integer-textdatei-speichern.html)

Lord_Crudelito 28. Mai 2009 12:11


Werte von Integer in Textdatei speichern
 
Hallo Forengemeinde,

ich habe ein kleines Quiz programmiert mit grafischer Oberfläche. Ich habe dort im Hintergrund einen Zähler, der die richtigen bzw falschen Antworten zählt.

Ich möchte nun allerdings diese Variable in eine neue Textdatei speichern um später nachzuschauen welcher Spieler wievielePunkte gemacht hat. Ich habe schon ein wenig gegooglet, finde aber glaube ich, nicht die richtige Lösung. Es wäre schön wenn mir dabei mal einer helfen könnte!


mfg

Ben

Satty67 28. Mai 2009 12:14

Re: Werte von Integer in Textdatei speichern
 
Dafür würde sich entweder eine INI-Datei anbieten (SpielerName=Punkte) oder eine TStringList (Names & Values) die dann auch gleich eine Methode mitliefert, um in eine Datei zu speichern.

Lord_Crudelito 28. Mai 2009 12:17

Re: Werte von Integer in Textdatei speichern
 
Und wie soll ich das ganze realisieren? Ich bin im grunde noch Anfänger in Delphi, hätte ich vllt vorher sagen sollen


Delphi-Quellcode:
if antwort[a ,2] = antwort[a ,0] then
wcounter:= wcounter+1
else
fcounter:= fcounter+1;

das ist der Code meines counters

wcounter steht für richtige antworten, fcounter für falsche antworten. Beide sind vorher auf 0 gesetzt worden

Luckie 28. Mai 2009 12:31

Re: Werte von Integer in Textdatei speichern
 
Hast du hier im Forum oder in der Hilfe schon mal nach Ini-Dateien geguckt, wie die funktionieren?

DeddyH 28. Mai 2009 12:31

Re: Werte von Integer in Textdatei speichern
 
Ini-Tutorial

Satty67 28. Mai 2009 12:39

Re: Werte von Integer in Textdatei speichern
 
In der Handhabung als HighScore-Liste wäre jetzt TSrtinList evtl. einfacher. Lässt sich einfach ein Wert (Spieler=Score) zufügen. Durch assign die ganze Liste gleich in einer ListBox anzeigen und mit LoadFromFile/SaveToFile recht schnell spreichern.

Das Aneignen der INI-File Funktionsweise hätte dann wieder den Vorteil, das man gleich einen Dateispeicher für weitere Programmeinstellungen hat.

Lord_Crudelito 28. Mai 2009 12:43

Re: Werte von Integer in Textdatei speichern
 
Zitat:

Zitat von Satty67
In der Handhabung als HighScore-Liste wäre jetzt TSrtinList evtl. einfacher. Lässt sich einfach ein Wert (Spieler=Score) zufügen. Durch assign die ganze Liste gleich in einer ListBox anzeigen und mit LoadFromFile/SaveToFile recht schnell spreichern.

Das Aneignen der INI-File Funktionsweise hätte dann wieder den Vorteil, das man gleich einen Dateispeicher für weitere Programmeinstellungen hat.

Das klingt genau nachdem was ich glaub ich brauche!Aber wie soll das ganze gehen?


edit:// habs jetzt soweit hingekriegt,das der Inhalt einer textdatei ausgelesen wird und in der tlistbox angezeigt wird.

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);  //highscore
begin
highscore := TStringList.Create;
try
highscore.LoadFromFile('Beispiel.txt');
ListBox1.Items := highscore;
except
ShowMessage ('Fehler beim öffnen der Datei!');
end;
end;
nur wie schreib ich das ganze da rein?

p80286 28. Mai 2009 14:17

Re: Werte von Integer in Textdatei speichern
 
Zunächst solltest Du schauen ob der aktuelle Benutzer schon in der stringlist ist.
falls ja überschreibe den vorhandenen counterstand
falls nein einfach
Delphi-Quellcode:
highscore.lines.add(benutzer+'='+inttostr(counter));
Ggf. sortierst Du noch bevor Du alles wegschreibst.

das war's
gruß
K-H

DeddyH 28. Mai 2009 14:32

Re: Werte von Integer in Textdatei speichern
 
Zitat:

Zitat von p80286
Zunächst solltest Du schauen ob der aktuelle Benutzer schon in der stringlist ist.

Und da geht es doch schon los, da muss dann mit Copy oder AnsiStartsText oder dergleichen hantiert werden. Bei einer IniFile wäre das IMHO viel einfacher zu handlen.

himitsu 28. Mai 2009 14:43

Re: Werte von Integer in Textdatei speichern
 
@DeddyH: die TStringList bietet dafür aber auch Möglichkeiten ... muß man also nicht selber suchen
:angel2:

Delphi-Quellcode:
// Datei und Benutzer sind Strings und Counter, PunkteDazu sind Integer
// (Typkonvertierung passiert intern)

// alle nötigen Befehle:
XML := TXMLFile.Create;
XML.LoadFromFile(Datei);
Counter := XML.RootNode.Node[Benutzer].Data;
....
XML.RootNode.Node[Benutzer].Data := Counter;
XML.SaveToFile(Datei);
XML.Free;
// hier muß man nur aufpassen, daß Benutzer keine Lehrzeichen und sowas enthält
das geht eigentlich mit fast allen XMLLibs ähnlich einfach

und in Kurz ginge bei himXML auch sowas:
Benutzer darf hier nur keine * ? \ und > enthalten
Delphi-Quellcode:
XML := TXMLFile.Create(nil, false, 'meinepunkteliste');
XML.Options := [xoNodeAutoCreate, xoAutoSaveOnClose];
if FileExists(Datei) then XML.LoadFromFile(Datei)
else XML.Filename := Datei;
...
Counter := XML.RootNode.Node['user>name=' + Benutzer].Data;
XML.RootNode.Node['user>name=' + Benutzer].Data :=
  XML.RootNode.Node['user>name=' + Benutzer].Data + PunkteDazu;
XML.RootNode.Node['user>name=' + Benutzer].Data := Counter;
...
XML.Free;
Ergebnis wäre dann eine XML-Strucktur wie diese
XML-Code:
<meinepunkteliste>
  <user name="Benutzer">Counter</user>
  <user name="Benutzer2">Counter2</user>
  ...
</meinepunkteliste>


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz