Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#11

AW: Zugriff mehrerer User auf eine Datei

  Alt 7. Jul 2013, 19:46
Also ich würde wenn es nur um zentrale Highscores geht die Sache mit einer exklusiv gelockten Datei erledigen.
Hier mal Stichpunktartig der Ablauf:

Eingabeparameter:
* Dateiname
* Highscorename
* scorewert (-1 bedeutet: Highscore nicht schreiben)
Ausgabe
* Stringliste mit Highscores

Ablauf
1.) Datei exklusiv öffnen
dabei hilft dieser Code http://www.delphipraxis.net/52135-ex...f-dateien.html
2.) Inhalt aus dem Stream in die Stringliste einlesen Liste.ReadFromStream(stream); 3.) Wenn scorewert = -1 dann gehts weiter mit Punkt 8
4.) Zeile mit dem Highscorename suchen und aktualisieren
der Inhalt der Datei könnte z.B. so aussehen
Code:
Gametester|200000
Predator|80500
Fredl|60000
Beginner|5500
Also immer Name|score in einer Zeile
5.) Falls der eigene Name nicht in der Liste enthalten dann neuen Eintrag einfügen
6.) Liste ggf. sortieren
7.) Stream Position auf Anfang setzen und aktualisiert Liste schreiben
8.) Streamobjekt freigeben

Man kann den beschriebenen Auflauf in einer Procedure unterbringen oder (besser) man schreibt eine Klasse dafür.
Nachtrag: man kann die Stringliste auch in ein TMemIniFile kopieren (Methoden SetStrings , GetStrings ) und so den Datenzugriff vereinfachen
fork me on Github

Geändert von sx2008 ( 8. Jul 2013 um 15:26 Uhr) Grund: Punkt 7.) war unvollständig
  Mit Zitat antworten Zitat