Entwickler-Ecke

Dateizugriff - Problem mit ini High Score


Delete - Di 28.01.03 22:45
Titel: Problem mit ini High Score
Hey,
ich will ein Highscore programmieren und hab folgendes Problem:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.highscore;
begin
  try
    Ini:=TIniFile.Create('d:\highscore.ini');
    Ini.WriteString('1''Name',input);
    Ini.WriteString('1','Zeit',Zeit);
    Ini.WriteInteger('1','Abstand',abstand1);
  finally
    Ini.Free;
  end;
end;

So Funktioniert noch alles! Die Werte werden in die Datei geschrieben.
aber leider nur in die erste Section. Ich will aber für jeden Rang eine eigene Section erstellen. Deswegen ermittel ich den platz und will jetzt für die '1' platz als variable einsetzten. Das ganze sieht dann so aus:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.highscore;
begin
  try
    Ini:=TIniFile.Create('d:\highscore.ini');
    Ini.WriteString(platz,'Name',input);
    Ini.WriteString(platz,'Zeit',Zeit);
    Ini.WriteInteger(platz,'Abstand',abstand1);
  finally
    Ini.Free;
  end;
end;

Ich bekomme die Fehlermeldung:
Zitat:
[Error] panelrennen.pas(120): Incompatible types: 'String' and 'Integer'

Aber auch wenn ich die Variable vorher als String mache, bekomm ich die gleiche Fehlermeldung.. Wieso? *g*

nGerrit

Moderiert von user profile iconTino: Code- & Quote-Tags hinzugefügt.


Alibi - Di 28.01.03 23:05

platz ist ein Integer?
Dann einfach IntToStr(platz).


Delete - Di 28.01.03 23:15

Hä??
Erstmal danke. Jetzt gehts. Ich hatte aber vorher schon ne andere variable gemacht
platz2 := IntToStr(platz);

Damit gings auch nicht..

Komisch. Aber Danke!

nGerrit


Alibi - Di 28.01.03 23:16

Die Variable platz2 muss natürlich dafür ein String sein. ;)


Delete - Mi 29.01.03 17:57

Jo Thx. Aber ich brauche eure hilfe schon wieder... Ich will die ini Auslesen und die gespeicherten werte vergeleichen. Programm startet auch, aber wenn er dann soweit ist, die werte auszulesen kackt das programm ab (so richtig mit fehlermeldung :))

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var DeineZeit , timecode1 , timecode2 , timecode3 , timecode4 , timecode5:integer;
begin
DeineZeit := timecode;

    timecode1:=Ini.ReadInteger('1',
                     'Code',0);
    timecode2:=Ini.ReadInteger('2',
                     'Code',0);
    timecode3:=Ini.ReadInteger('3',
                     'Code',0);
    timecode4:=Ini.ReadInteger('4',
                     'Code',0);
    timecode5:=Ini.ReadInteger('5',
                     'Code',0);
end;

Die Daten wurden auch vorher als Integer geschrieben.. Weiß nicht, wo der Fehler liegen kann

Moderiert von user profile iconTino: Code-Tags hinzugefügt.


hibbert - Mi 05.03.03 12:15

tach post,
wenn ich mich da mal einmischen darf, aber ich hab auch einmal das thema highscore behandelt, und habe das prob ganz einfach und simpel gelöst. schau dir doch einfach mal meine lösung an.
Mein Beispiel [http://www.delphi-forum.de/viewtopic.php?t=7409&highlight=]

is zwar ein bisschen lang, aber es hilft :wink:
mfg hibbert


mimi - Mi 12.03.03 19:08

ich habe mal für mein Snake 1 sowas gemacht.
(und es hat funktioniert;) )
also wenn du willst,kann ich mal denn qullcode suchen gehen und dir den
teil für die punkteliste geben;)