Entwickler-Ecke

Dateizugriff - Integer wert aus Txt datei auslesen


kalle - So 04.01.09 10:27
Titel: Integer wert aus Txt datei auslesen
Hallo ich habe einen Integer wert mit inttostr gewandelt und dann in eine test.txt geschrieben
und zwar mit tstringlist test.savetofile('c:\test.txt');
funktioniert auch super habe den wert 240 geschrieben
Aber wie kann ich das jetzt wieder auslesen
Klar mit loadfromfile('c:\test.txt');
macht der auch aber dann kommt es beim strtoint zum fehler
Und zwar dieser : 240 is not a valid integer value
Kann mir da jemand helfen?
Ziel ist es alle 5 min einen wert zu speichern und diesen auszulesen und zu verarbeiten
Warum ? wird mein Programm beendet ,stürzt ab ,so soll der gespeicherte Wert beim neustart von meinm
Programm benutzt werden.
Freue mich auf antwort


Oreaden - So 04.01.09 10:38

Schönen Morgen Kalle,

vielleicht wäre es sinnvoller den Integer als Integer zu schreiben und zu lesen, damit brauchst keine Trennzeichen und das ganze ist viel Speichersparender. Hierzu schaue dir mal an



Falls Du das nicht möchtest, solltest Du auch Trennzeichen implementieren. Die Umkehrfunktion von IntToStr ist StrToInt.

Schöne Grüße
OREADEN


Blackheart666 - So 04.01.09 10:44

Wie wäre es denn mit einer Ini.


alzaimar - So 04.01.09 11:18

Bevor andere Lösungsmöglichkeiten aufgezeigt werden, sollte der Fehler zunächst lokalisiert werden.

Kalle, schau Dir mal genau den Inhalt bzw. poste den Codeabschnitt, der die Zahl per StrToInt wieder ausliest. Ich vermute, das in dem String, den Du an StrToInt vergibst, weitere Zeichen enthalten sind.


dummzeuch - So 04.01.09 11:50
Titel: Re: Integer wert aus Txt datei auslesen
user profile iconkalle hat folgendes geschrieben Zum zitierten Posting springen:

Klar mit loadfromfile('c:\test.txt');
macht der auch aber dann kommt es beim strtoint zum fehler Und zwar dieser : 240 is not a valid integer value
Kann mir da jemand helfen?


Ich vermute, Du benutzt folgenden Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  sl: TStringList;
  i: integer;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('c:\test.txt');
  i := StrToInt(sl.Text);


Falls ja, versuche mal:

Delphi-Quelltext
1:
  i := StrToInt(sl[0]);                    


Grund: .Text enthaelt immer CR/LF Zeilentrenner, auch wenn nur eine einzelne Zeile in der Datei steht. Dieser wiederum wird von StrToInt nicht verstanden.

twm


jaenicke - So 04.01.09 13:30
Titel: Re: Integer wert aus Txt datei auslesen
Das lässt sich auch leicht beheben, indem man statt

Delphi-Quelltext
1:
  i := StrToInt(sl.Text);                    
schreibt

Delphi-Quelltext
1:
  i := StrToInt(Trim(sl.Text));                    
;-)


kalle - Mo 05.01.09 00:24
Titel: Danke an alle
Hi und danke ihr habt mein Probl. gelöst
Hab die von Jaenicke genommen