TStringList Problem



  • Hallo,

    ich füge über den OpenDialog mehrere Dateien in eine ListBox ein, bearbeite diese und werden dann per insert(int,AnsiString) in eine StringListe gespeichert. Da das bearbeiten über ca. 10 for-Schleifen und if-Abfragen geht und beim Scrollen die StringListe ausgelesen werden muß habe ich bei jedem neuen Einfügen eine for Schleife die erstmal etwas in die StringList speichert:

    for(int mehr = OldLBCount; mehr < ListBox1->Items->Count; mehr++)
    	{
    		indiList->Add("");
    		OldLBCount = mehr;
    	}
    

    Nach dem sechsten mal einfügen bekomme ich beim Scrollen und bearbeiten eine Fehlermeldung: Zugriffsverletzung auf Adresse "sowieso". Lesen von Adresse "sowieso".

    Nun Meine Frage muß ich vor dem ändern(Insert()) in der StringList den alten Eintrag irgendwie löschen oder was könnte ich falsch machen? Wie bekomme ich raus wo die Zugriffsverletzung in meinem Code ist und warum???????

    Danke
    Gruß



  • Hallo,

    fehlt das hier vor der For-Schleife (oder global)

    TStringList *indiList=new TStringList();
    

    Grüsse



  • Hallo,
    nein, fehlt nicht, ist global und wird schon in FormCreate erstellt.

    Gruß



  • Hallo,

    ich glaub du probierst mit dem Insert an einer Stelle was einzufügen, wo schon längst Schluss ist in der List.
    So überschreibt man ein Zeile

    int index=10;
    if(index < indiList->Count)
    indiList->Strings[index]="diese Zeile überschreiben";

    Grüsse



  • daniel23 schrieb:

    ...-
    Nun Meine Frage muß ich vor dem ändern(Insert()) in der StringList den alten Eintrag irgendwie löschen oder was könnte ich falsch machen? Wie bekomme ich raus wo die Zugriffsverletzung in meinem Code ist und warum???????

    benutz mal den Debugger um herauszufinden in welcher Codezeile der Fehler auftritt


Anmelden zum Antworten