![]() |
Dateien
Hallo,
ich habe ein Problem: Wenn ich in einer Stinglist überprüfen lasse, ob in der 4. Zeile, die noch gar nicht existiert, "Testlizenz" steht, kommt die Fehlermeldung, dass ich das Maximum überschreite. Kann man da was machen? Oder kann man den Cursor in der Datei an eine von mir festgelegte Stelle setzen? Johannes013 :gruebel: |
Re: Dateien
Du kannst doch die Anzahl der Zeilen in der Stringlist mittels Count überprüfen. Index darf Count-1 nicht überschreiten.
|
Re: Dateien
Kannste mir ein einfaches bsp. nennen? ich bin anfänger und verstehe nicht sehr viel von der Delphi hilfe.
Johannes013 |
Re: Dateien
Hallo,
Anzahl der Einträge in einer String-List bekommst Du mit
Delphi-Quellcode:
jetzt kannst Du in einem Bereich von 0 bis n auf die StringList zugreifen
var
n : Integer; // Anzahl der Listeneinträge List : TStringList; begin n := List.Count -1; // -1, da der erste Index nicht 1 sondern 0 ist end; |
Re: Dateien
Heißt das, wenn der Eintrag "Test" in zeile 5 kommen soll, Zeile 5 noch nicht existiert, ist n=4.
ist das dann:
Delphi-Quellcode:
Dann kommt die Meldung: Index überschreitet das Maximum (4).
var
Datei:TextFile; n:Integer; List:TStringList; begin // Assign (...) und Stringlist benennen bzw. laden....... Append(Datei); Writeln(Datei, '1.'); Writeln(Datei, '2.'); Writeln(Datei, '3.'); Writeln(Datei, '4.'); // Writeln(Datei, 'Test'); CloseFile(Datei); if Copy(List[4],1,4)<>'Test' then Form1.color:=clred; end; |
Re: Dateien
hey, nichts weglassen im Code :zwinker:
Scheint so, also ob Du die StringListe lädst und danach erst die Datei mit Werten füllst? Liste mit 4 Elementen: Index = 0 - 3 Count = 4 Bei List[Index] und nur 4 Elementen in der Listen, ist List[4] auserhalb |
Re: Dateien
Delphi-Quellcode:
var
Datei:TextFile; n:Integer; List:TStringList; begin // Assign (...) Append(Datei); Writeln(Datei, '1.'); Writeln(Datei, '2.'); Writeln(Datei, '3.'); Writeln(Datei, '4.'); // Writeln(Datei, 'Test'); CloseFile(Datei); // Benennen bzw laden er List... if Copy(List[4],1,4)<>'Test' then Form1.color:=clred; List.Free; end; |
Re: Dateien
Das ist immer noch das selbe wie oben oder?
Versuch mal
Delphi-Quellcode:
Zeilen wie List.Add(text) oder der Inhalt der Datei, die mit List.LoadFromFile(file) geladen wird, das wäre interessant.
Copy(List[3], 1, 4)
Ich denke aber eigentlich, dass deine Frage schon von den anderen beantwortet wurde :stupid: |
Re: Dateien
Also wie oben beschrieben, List[4] greift auf das 5. Element zu.
Der Index von Listen startet bei 0, d.h. das erste Element ist List[0] und das letzte Element List[Count-1]. Der gepostete Code ist aber nicht alles, ich frage nur, weil neben assignFile auch ein List:TStringList.Create fehlt. |
Re: Dateien
:wiejetzt:
Delphi-Quellcode:
wie schlte ich die oben genannte Fehlermeldung aus?
var
Datei:TextFile; n:Integer; List:TStringList; begin // Assign (...) Append(Datei); Writeln(Datei, '1.'); Writeln(Datei, '2.'); Writeln(Datei, '3.'); Writeln(Datei, '4.'); // Writeln(Datei, 'Test'); CloseFile(Datei); // Benennen bzw laden er List... if Copy(List[4],1,4)<>'Test' then Form1.color:=clred; List.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz