Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   LoadFromFile lädt 0 anstelle einer Zahl (https://www.delphipraxis.net/179153-loadfromfile-laedt-0-anstelle-einer-zahl.html)

schultz 17. Feb 2014 15:57

Delphi-Version: 5

LoadFromFile lädt 0 anstelle einer Zahl
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebes Forum,

ich habe ein Problem mit der Funktion LoadFromFile.
Ich möchte eine Textdatei laden, die in 14 Zeilen Zahlen stehen hat. Nur lädt er in Zeile 12 und 14 immer eine Null rein, egal was ich dort stehen habe.
Delphi-Quellcode:
Parameter.LoadFromFile(OpenDialog1.FileName);
Edit1.text:=Parameter[0];
    Edit2.text:=Parameter[1];
    Edit3.text:=Parameter[2];
    Edit4.text:=Parameter[3];
    Edit5.text:=Parameter[4];
    Edit6.text:=Parameter[5];
    Edit7.text:=Parameter[6];
    Edit8.text:=Parameter[7];
    Edit9.text:=Parameter[8];
    Edit10.text:=Parameter[9];
    Edit11.text:=Parameter[10];
    Edit12.text:=Parameter[11];
    Edit13.text:=Parameter[12];
    if StrToInt(Parameter[13])=1 then Edit14.text:='low'
    else if StrToInt(Parameter[13])=2 then Edit14.text:='medium'
    else if StrToInt(Parameter[13])=3 then Edit14.text:='high'
    else Edit14.text:='WRONG!';
Parameter ist eine TStringList und wird bei mir wie folgt initiiert:
Delphi-Quellcode:
Parameter:=TStringList.Create;
  for i:=0 to 13 do
  Parameter.add('');
Ich hoffe ihr könnt mir helfen. Ich habe die Textdatei mal mit angehangen.
MfG Thorsten

Uwe Raabe 17. Feb 2014 16:36

AW: LoadFromFile lädt 0 anstelle einer Zahl
 
Was du uns hier zeigst, sieht soweit ganz OK aus. Die for-Schleife mit den Leerstrings kannst du weglassen, da das LoadFromFile sowieso alle neu macht.

Bist du sicher, daß du die richtige Datei lädst?

p80286 17. Feb 2014 16:47

AW: LoadFromFile lädt 0 anstelle einer Zahl
 
Nun wenn ich die Datei mit
Delphi-Quellcode:
 Memo1.lines.loadfromfile
lade kommt folgendes heraus:
1
2
3
4
5
6
7
8
9
10
11
12
13
16

Das sieht doch sehr richtig aus.

gruß
K-H

himitsu 17. Feb 2014 16:51

AW: LoadFromFile lädt 0 anstelle einer Zahl
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1248231)
Bist du sicher, daß du die richtige Datei lädst?

Wobei man sich hier ja auch mal ganz gut im Debugger ansehen könnte, was geladen wird.

Zitat:

Zitat von Uwe Raabe (Beitrag 1248231)
Die for-Schleife mit den Leerstrings kannst du weglassen, da das LoadFromFile sowieso alle neu macht.

Nein, nicht unbeding. Beim Speichern sollte er besser alle Zeilen erstellen/initialisieren.
Aber ja, beim Laden bringt es nichts, wenn er vorher Leerzeilen hinzufügt. (wenn er schon nichts prüft, sollte nach dem LoadFromFile die nötige Mindest-Zeilen-Anzahl erstellt werden)

Bei TMemo.Lines bekommt man für leere Zeilen einen Leer-String, aber eine TStringList wirft da eine Exception, wenn man auf nichtexistierende Werte zugreift.
Wobei es sicherlich besser wäre, das beim Lesen auch abzufangen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr.

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