![]() |
Listenindex überschreitet Maximum(1)
Ich weiß, es wurde jetzt schon oft genug gefragt, aber ich bin noch ein Anfänger und konnte aus den anderen Beiträgen nicht so viel entnehmen. Was ist falsch daran?:?
ich versuche aus der textdatei die kontaktdaten auszulesen und als Labels auszugeben. Die Datei wird Info(Benutzername).txt genannt.
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
var sdd: TStrings; begin if Form3.Visible then if FileExists(path+'Info'+Form1.Edit1.Text+'.txt') then begin sdd:=TStringList.Create; sdd.LoadFromFile(path+'Info'+Form1.Edit1.Text+'.txt'); Label3.Caption:=sdd.Strings[0]; Label4.Caption:=sdd.Strings[1]; Label4.Caption:=sdd.Strings[2]; Label6.Caption:=sdd.Strings[3]; end; end; |
AW: Listenindex überschreitet Maximum(1)
Mal ein Versuch, damit Du etwas weiter kommst:
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
var sdd: TStringList; // identischer Typ mit Instanz FN: String; // damit nicht zwei mal die gleiche "Berechnung" verwendet werden muss begin if Form3.Visible then begin FN := path+'Info'+Form1.Edit1.Text+'.txt'; if FileExists(FN) then begin sdd := TStringList.Create; sdd.LoadFromFile(FN); // es ist unsicher, wie viele Zeilen in der StringList stehen if ssd.Count > 0 then Label3.Caption:=sdd[0] else Label3.Caption:=''; if ssd.Count > 1 then Label4.Caption:=sdd[1] else Label4.Caption:=''; if ssd.Count > 2 then Label4.Caption:=sdd[2] // müsste Label5 heißen? else Label4.Caption:=''; if ssd.Count > 3 then Label6.Caption:=sdd[3] else Label6.Caption:=''; FreeAndNil(ssd); end; end; end; |
AW: Listenindex überschreitet Maximum(1)
Fangen wir mal klein an:
Wir haben hier [code]- und sogar [delphi]-Tags, für die Quellcodes.
Delphi-Quellcode:
Warum gibst du dein erstellte TStringList (sdd) nicht wieder frei? (Speicherleck)
begin
ShowMessage('Hallo'); end; Und nun zum Problem: Die Fehlermeldung sagt dir doch, was du falsch machst. (und der Debugger sagt dir sogar wo) Du willst vermutlich auf eine Zeile (Index) der Stringliste zugreifen, welche es nicht gibt. Laut Fehlermeldung ist eine Datei scheinbar nicht voll genug und entält nur eine Zeile (größter Index ist 0) und demnach kannst du da auch keine weiteren Zeilen (Index über 0) auslesen. :zwinker: Und dann noch
Delphi-Quellcode:
.
if Form3.Visible then
Du bist doch schon in TForm3 drin, als solltest du auch nicht den Umweg über Form3 gehn (laß' das
Delphi-Quellcode:
einfach weg)
Form3.
[add] Und es kann nichts schaden, wenn du etwas über Resourcenschutzblöcke lernst. (Try-Finally) |
AW: Listenindex überschreitet Maximum(1)
Danke erst mal für die schnelle und ausführliche Antwort (:
Ich habe stahlis Code mal versucht zu compilieren, leider ereilte mich das selbe Schicksal wie vorher, selbe Fehlermeldung :roll: Die StringList freizugeben habe ich wohl ganz vergessen, danke für die Anmerkung. Das seltsame ist, das meine Text-Datei 6 Zeilen hat.. Hier der Code zum abspeichern der Datei, vielleicht hilft der weiter: (Treg ist eine eigene Klasse TForm und sl und sd speichern einmal das Kennwort ab und einmal die Kontaktinformationen) procedure TReg.Button1Click(Sender: TObject); var sl, sd: TStrings; begin sl := TStringlist.Create; sl.add(Edit1.Text); sl.savetofile(path+ Edit2.Text +'.txt'); sd :=TStringlist.Create; sd.Add(Form1.Edit3.Text); sd.Add(Form1.Edit4.Text); sd.Add(Form1.MaskEdit1.Text); sd.Add(Form1.Edit6.Text); sd.Add(Form1.ComboBox3.Text); sd.SaveToFile(path+'Info'+Edit2.Text+'.txt'); sd.free; sl.free; Showmessage ('Sie haben erfolgreich ein Konto angelegt'); myForm.close; Form1.Close; |
AW: Listenindex überschreitet Maximum(1)
Hallo,
bitte ändere Deinen Quelltext mal entsprechend: Zitat:
|
AW: Listenindex überschreitet Maximum(1)
Wieso SchowMessage?
Man glaubt es kaum, aber der Debugger liefert genau die selben ergebnisse und das sogar schneller/einfacher. |
AW: Listenindex überschreitet Maximum(1)
Zitat:
|
AW: Listenindex überschreitet Maximum(1)
Ich habe das Problem gelöst, danke an alle die geholfen haben (:
Ich baue gerade Facebook mit Delphi nach, falls ihr zufällig Ideen zur Umsetzung habt, würde ich mich über Anmerkungen freuen :-D |
AW: Listenindex überschreitet Maximum(1)
Zitat:
![]() |
AW: Listenindex überschreitet Maximum(1)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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