unverständlich Fehlermeldung



  • Zeig mal den Schleifenkopf. Natürlich lieg der Fehler am Zählen. Was die Meldung bedeutet hat Peter schon ausführlich beschrieben. Leider ist diese Meldung in der Tat etwas verwirrend.

    Du kannst aber auch selber den Fehler finden indem du einfach mal den Debugger benutzt.

    -junix

    <edit>Ausserdem empfehle ich auch mal die Suchfunktion zu benutzen mit dieser Fehlermeldung. Bist nicht der/die erste die sich über die Meldung wundert (-;</edit>

    [ Dieser Beitrag wurde am 07.01.2003 um 17:01 Uhr von junix editiert. ]



  • TStringList* Zeilen_Liste = new TStringList;
    Zeilen_Liste->LoadFromFile("c:\\Standard.csv");
    
    int a=0;
    a=Zeilen_Liste->Count; //gibt die richtige anzahl an
    :
    :
    for(int i = 1; i <= a ; i++) //geht genau a* durch und dann bricht er mit der fehlermeldung ab
    {
      //suche String und schreibe in Tabelle
    }
    


  • 1. Wieso der Umweg über a und wiesonicht direkt TStringList::Count anstelle von a im Schleifenkopf?
    2. Lies mal den 2. Satz in der Beschreibung zu TStringList::Strings in der Hilfe

    Wenn du das gemacht hast, wirst du vermutlich auch merken was genau falsch läuft (-;

    -junix



  • Original erstellt von <biene>:
    *```cpp
    for(int i = 1; i <= a ; i++) //geht genau a
    durch und dann bricht er mit der fehlermeldung ab
    {
    //suche String und schreibe in Tabelle
    }

    Genau der Code an der Stelle "suche String und..." wäre jetzt mal interessant.

    Vermutung: Du beginnst in deiner Schleife bei 1 und hörst bei Anzahl der Einträge auf. Wenn du dann in deiner Suche nach dem String auf den Index i zureifst, dann kann es sein, dass für diesen Index kein Eintrag vorhanden ist.

    Verbesserung: Beginn in deiner Schleife bei 0 und höre beu Anzahl der Einträge -1 auf.



  • Original erstellt von <biene>:
    *```cpp
    TStringList
    Zeilen_Liste = new TStringList;
    }

    scheint auch nen fehler zu sein ..



  • Original erstellt von 1ntrud0r:
    scheint auch nen fehler zu sein ..

    Warum??
    Ist doch ein legitimer Aufruf



  • es geht, ich habe den zähler falsch gewählt

    for(int i = 0; i < a ; i++)
    {
    }
    


  • Original erstellt von JeGr:
    Vermutung: Du beginnst in deiner Schleife bei 1 und hörst bei Anzahl der Einträge auf. [...] Verbesserung: Beginn in deiner Schleife bei 0 und höre beu Anzahl der Einträge -1 auf.

    Danke, JeGr, dass du <biene> jegliche Motivation genommen hast meinem Hinweis nachzugehen. Genau das steht nämlich in der Beschreibung zu TStringList::Strings, dass der Index mit 0 beginnt. (Dass die Schleife mit 1 beginnt ist ja am schleifenkopf ersichtlich)

    -junix



  • Original erstellt von JeGr:
    **
    Warum??
    Ist doch ein legitimer Aufruf**

    legitim ist nicht immer 🙂 richtig ? ... zuweisungen werden nunmal mit *<name> gemacht ... zumal man anmerken muss das so sachen sehr oft probleme geben .. der bcb compiler is das vielleicht sehr tollerant und flexibel andre sind es _nicht_ !

    [ Dieser Beitrag wurde am 08.01.2003 um 11:38 Uhr von 1ntrud0r editiert. ]



  • Ah ich vergass. <biene>: Ich nehme an die Methoden Find() und IndexOf() sind dir ein Begriff und genügen einfach nicht deinen Anforderungen an das Suchen, ja?

    -junix



  • Original erstellt von 1ntrud0r:
    *[...]zuweisungen werden nunmal mit <name> gemacht[...]

    Den Satz erklär mir mal, bitte.

    -junix



  • Ich glaube IntruDor meint, dass man in einem Namen keine "" haben sollte.
    Allerdings kann ich das auch nicht nachvollziehen.
    Mir ist nur die Empfehlung bekannt, dass man es vermeiden sollte, dass Variablennamen mit einem "
    " beginnen.



  • es war nur nen hinweis !! das z.B gcc sowas als .. syntax fehler ansieht .. rein zur info



  • Original erstellt von 1ntrud0r:
    das z.B gcc sowas als .. syntax fehler ansieht .. rein zur info

    Mein gcc version 2.95.3 20010315 (SuSE) hat keine Probleme mit Unterstrichen in Variablennamen.

    Rein zur Info. 😉



  • man was geht den jetzt hier ab???
    also, ich bedanke mich für die vielen hinweise - sie waren echt hilfreich

    mit Find() und IndexOf() habe ich mich noch nicht beschäftigt, da ich noch am anfang der programmierung stehe und mir alles selber aneignen muss. aber das was in der schleife steht funktioniert auch *abgesehen davon, dass das formular die daten jetzt nicht mehr anzeigt 😕



  • öhm wie wärs wenn man meine Beiträge ma genau liest und nich nur so nach dem Motto " Ich habs zwar net gelesen aber geb trotzdem meine Meinung ab " postet ?

    Wer_lesen_und_verstehen_kann_ist_klar_im_Vorteil !!! *leicht angesäuert ist*



  • @1ntrudOr: bitte sei mir jetzt nicht böse, aber ich weiss nicht, worauf du eigentlich hinaus willst.
    Ich verstehe deine Postings hier nicht so ganz.
    Vielleicht geht's ja nur mir so, aber könntest du bitte mal [b]exakt[\b] erklären, was du hier bemängelst.

    Danke 🙄



  • er meint den '*' weil der am Typbezeichner steht und nicht an der Variable.



  • Aha!
    Hatte damit bisher aber noch nie Probleme, weder unter Windows (Microsoft/Borland Compiler) noch unter Linux (gcc/g++ Compiler).

    Aber wenn's tatsächlich Probleme verursachen könnte, dann sollte man das auch vermeiden.
    Ist glaub ich auch eine Art Empfehlung, dass ein "*" bzw ein "&" nicht direkt beim Typbezeichner stehen sollte, sondern beim Variablennamen.

    [ Dieser Beitrag wurde am 08.01.2003 um 13:51 Uhr von JeGr editiert. ]



  • TStringList* Zeilen_Liste = new TStringList;

    Ist legitim, legal und korrekt.


Anmelden zum Antworten