Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Der Index der Liste überschreitet das Maximum(x).

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.08.2003, 17:27 Uhr
~WG_Spritzwasser
Gast


also: ich speicher beim beenden des progs eine StringList. beim erneuten sarten des progs lade ich die wieder aus der datei:


C++:
L->LoadFromFile(userdata);

for (int i=0; L->Strings[i] != ""; i++)
{
  TMenuItem *user = new TMenuItem(Benutzer);
  user->Caption = L->Strings[i];
  Benutzer->Add(user);
}




dann bekomm ich aber jedes mal beim starten des progs die fehlermeldung:
"Der Index der Liste überschreitet das Maximum(x)." wobei x der wert ist, wieviele "objekte" es in der datei hat.
ich klick den fehler weg und das prog läuft trotzdem völlig normal.

was hab ich da falsch gemacht oder nicht beachtet ?
wie kann ich das verhindern ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.08.2003, 18:27 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich würde vermuten, dass dein Vergleich (L->Strings[ i ] != "") niemals false ergibt und der dann irgendwann die schnautze voll hat. Lass dir doch mal i ausgeben und guck nach ob der weiter als die anzahl der datensätze läuft

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.08.2003, 18:54 Uhr
~WG_Spritzwasser
Gast


lol, lässt sich erst gar nicht ausgeben :/

naja, aber ich denk nicht, dass es daran liegt. das prog hatte ich glaub schonmal, da hatte ich keine schleife soweit ich weiß. ausserdem läuft das prog bis auf die fehlermeldung ja einwandfrei und zeigt genau das an, was er soll (bei den Benutzern).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.08.2003, 19:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


dann zeig mal dein LoadFromFile

wenn das mit dem i anzeigen nicht geht schreibs einfach in ne datei
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 02.08.2003 um 19:04 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.08.2003, 10:15 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Könnte auch einfach sein, daß die Datei keine Leerzeilen enthält. Dann wird i immer weiter hochgesetzt, bis es irgendwann größer ist als die Anzahl der Items. Wenn L eine TStringList oder TStrings ist, knallts dabei...

Probier mal

C++:
for (int i=0; i<L->Count && L->Strings[ i ] != ""; i++)



Wobei die Abfrage, ob der String leer ist, eigentlich auch gleich entfallen kann...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.

Dieser Post wurde am 03.08.2003 um 10:16 Uhr von Bruder Leif editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.08.2003, 13:10 Uhr
~WG_Spritzwasser
Gast


also beim erstellen von nem neuen Benutzer::


C++:
AnsiString newuser = InputBox("Neuer Benutzer", "Name des neuen Benutzers:", "");

if (newuser != "")
{
  TMenuItem *user = new TMenuItem(Benutzer);
  user->Caption = newuser;
  Benutzer->Add(user);
  L->Add(newuser);
}




dann wird L beim beenden gespeichert:


C++:
L->SaveToFile(userdata);



die datei sieht dann so aus:

user1
user2
user3
...

also jeder beutzer ist in einer extra zeile gespeichert

und beim erneuten starten des progs werden die user wieder aus der datei userdata ("UserData.ini") geladen:


C++:
L->LoadFromFile(userdata);

for (int i=0; L->Strings[i] != ""; i++)
{
  TMenuItem *user = new TMenuItem(Benutzer);
  user->Caption = L->Strings[i];
  Benutzer->Add(user);
}




wobei dieser teil:

C++:
  TMenuItem *user = new TMenuItem(Benutzer);
  user->Caption = L->Strings[i];
  Benutzer->Add(user);


die einzelnen Zeilen, also user in der datei, dem MainMenu hinzufügt.


ich denk mal das müsst alles sein, was es dazu gibt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.08.2003, 16:21 Uhr
~WG_Spritzwasser
Gast


oh, ich hab deine letzte antwort übersehen Leif. so gehts
danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.08.2003, 16:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na dann würd ich mal sagen das ich recht hatte oder? und der i viel zu hoch zählt

L->Strings[ i ] != "" scheint also niemals false zu werden, das heisst du kannst sie auch gleich weglassen

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.08.2003, 17:07 Uhr
~WG_Spritzwasser
Gast


jo, hattest recht, kann man weglassen
thx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: