String wird zum AnsiString



  • halli hallo

    als erstes lese ich das textfile "zuordnungen.txt" in eine StringList.
    Danach schreibe ich die Strings aus der StringList in ein String Array.
    Nun habe ich noch zwei ListBoxen, welche mir die Werte 'itemslist1' und 'itemslist2' liefern.
    Nun durchsuche ich das Array, mit dem Ziel, die Zeilennummer in der Datei "zuordnungen.txt" zu haben, in welcher es die Strings 'itemslist1' und 'itemslist2' gefunden hat.

    Bei einem String sollte das mit dem "find" funktionieren, es kommt aber der Fehler, dass "find" kein Element von 'AnsiString' ist, obwohl ich ja ein String Array verwenden (String datei[255])

    Weiss jemand, was ich falsch mache??

    🙄

    Hier der Code:

    TStringList* dateiliste = new TStringList;
       dateiliste->LoadFromFile("zuordnungen.txt");
       String datei[255];
    
       int i = 0;
       while(i < dateiliste->Count)
       {
                datei[i] = dateiliste->Strings[i];
                i++;
       }
       delete dateiliste;
    
       int position_1,position_2;
    
       for(int x = 0; x < i; x++)
       {
               position_1 = datei[x].find(itemslist1);
               position_2  = datei[x].find(itemslist2);
       }
    


  • Das liegt wahrscheinlich daran, dass AnsiString keine Methode find() besitzt - wenn man der BCB-Hilfe trauen darf.
    Vielleicht verwechselst Du das mit der Methode Find() der Klasse TStringList? Ein Array von Strings ist aber nicht automatisch
    eine Instanz von TStringList.

    Gruß,

    Alexander



  • Hallo Chad Muska,
    ich gehe davon aus du arbeitest mit dem BCB hier ist dann der gewünschte Datentype "AnsiString" nicht String. Aber auch bei AnsiString gibt es die Methode Find nicht sondern z.B. AnisCompare.

    Evi48



  • Chad Muska schrieb:

    Bei einem String sollte das mit dem "find" funktionieren, es kommt aber der Fehler, dass "find" kein Element von 'AnsiString' ist [...]
    Weiss jemand, was ich falsch mache??

    Du verwechselst String (ein typedef auf AnsiString) mit einem anderen Datentyp, vermutlich mit dem string aus der STL.



  • ja ich arbeite mit bcb.

    was gibt es dann noch für möglichkeiten ein string array nach einem bestimmten string zu durchsuchen?



  • Dazu müsste erstmal feststehen, von welchem Typ du ein Array bilden willst.

    Wenn du AnsiStrings benutzt brauchst du jedenfalls kein zusätzliches Array, mit der StringList verfügst ja bereits über ein solches. Und wenn du dir die Methoden von TStringList (und von AnsiString) ansiehst, dann findest du sicher auch einige, die beim Suchen nach bestimmten Zeichenketten helfen.


Anmelden zum Antworten