Entwickler-Ecke

Dateizugriff - Problem aus der Ini zu lesen


Cyberbob - Di 08.10.02 20:09
Titel: Problem aus der Ini zu lesen
HI ihr,

ich habe zwei variablen, spiele(string) und spielezahl(integer)
wenn ich nun aus der Inidatei spielezahl auslesen will, geht das nicht, ich kann es nur als String auslesen! Warum Spiele hat doch einen Zahlen wert... im moment 100. .


Was mache ich falsch?

cyberb :P b


Delete - Di 08.10.02 20:18

Zitat:
Warum Spiele hat doch einen Zahlen wert...

Nicht nach deiner eigenen Beschreibung:
Zitat:
ich habe zwei variablen, spiele(string) und spielezahl(integer)

Aber ich nehme mal an, dass du eigentlich "Spielezahl" meinst.
Zitat:
Was mache ich falsch?

Ohne Code schwer zu sagen. Vielleicht benutzt du einfach nur den falschen Befehl? Es gibt nicht nur "TIniFile.ReadString" ...


Rooof - Mi 09.10.02 07:26

Hi

Am einfachsten machst du dies wohl mit einer StringListe.


Quelltext
1:
2:
3:
4:
5:
6:
var  slListe: TStrings;

begin
  slListe := TStringList.create;
  slListe.LoadFromFile(Filenamen: String);
end;


Du hast dann das File erst einmal ins Programm geladen. Nun kannst du auf die Liste zugreiffen und schauen, welche Werte wo sind, indem du folgeden Programmcode ausführst:


Quelltext
1:
2:
3:
4:
5:
6:
var i: Integer;

For i := 0 to slListe.count -1 do
begin
  showmessage(slListe[i]);
end;


Wenn sich jetzt in diesen Elementen noch irgendwo Stringwerte befinden, welche du als Integer-Werte haben solltest, kannst du sie einfach mit der Funktion StrtoInt umwandeln.

Mfg
Rooof


LCS - Mi 09.10.02 07:44

Hi
Rooof hat folgendes geschrieben:

Am einfachsten machst du dies wohl mit einer StringListe.

Kann ich nicht so richtig nachvollziehen was daran einfacher sein soll :nixweiss:

Rooof hat folgendes geschrieben:

Du hast dann das File erst einmal ins Programm geladen. Nun kannst du auf die Liste zugreiffen und schauen, welche Werte wo sind...

Warum soll er denn die gesamte Datei ins Programm laden und dann manuell durchsuchen, wenn es doch nur darum geht, auf einen bestimmten, bekannten Wert zuzugreifen. Die Methoden von TIniFile sind genau dafür da.

Um Lesen eines Stringwertes ReadString. Zum Lesen einer Zahl ReadInteger

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure IniLesen;
var
  iIni  : TIniFile;
  iw   : integer;
  sw  : string;
begin
  iIni := TIniFile.Create( DeinPfadundName );
  try
    sw := iIni.ReadString('Deine Section', 'Spiele', '');
    iw := iIni.ReadInteger('Deine Section', 'Spielezahl', 0);
  finally
    iIni.Free;
  end;
end;


Gruss Lothar


Cyberbob - Mi 09.10.02 17:01

hi ihr..

:oops: :oops: äh, ich habe doch dummerweise readinteger blah bla und ganz hinten ' ' geschrieben . Hab sie nun weggelassen und durch ne 0 ersetzt!
*Vor den Kopf hau*

thx