Prüfen ob Eintrag in TSringList vorhanden ist



  • Hallo Leute,
    genau so, möchte ich einen neuen Eintrag in eine dynamisch erstellten TSringList addieren, aber vorher will ich wissen ob der Eintrag vorhanden ist oder nicht, wenn vorhanden dann nicht addieren sonst addieren.
    hat jemanden ein Idee? ich habe in die SuchFunktion durch geschaut, in den FAQs, aber nicht gefunden, nicht was ich genau suche.
    hie ist eine erläuterung des Problems:

    TStringList *DateiListe = new TStringList;
    AnsiString Einrag; //dies sind Dateinamen von (OpenDialog->Filename)
    //wenn Liste voll ist dann prüfen
     if (DateiListe->Count>0)
     {
      for (int i=0; i<DateiListe->Count; i++) //die Liste durch schauen
      {//nur wenn kein Eintrag mit dieser name vorhanden ist
       if (DateiListe->Strings[i]!=Einrag) 
        { //dann bitte addieren
          DateiListe->Add(Eintrag);
        }
      }
     }
    //sonst Eintrag in die Liste addieren
    else
      {
       DateiListe->Add(Eintrag);
      }
    

    nun wie man oben sieht, wenn die Liste leer ist dann habe ich kein Problem.
    Und wenn die Liste voll ist kommt das for Schleife und fürht mein Befehl mehrmals (DateiListe->Count) Mal, was ich nicht will, ich will die Schleife abbrechen wenn Eintrag vorhanden ist, sonst nur ein mal ausführen, wie mache ich das?
    danke
    C++_Hoby



  • Sieh dir mal TStringList::Pos() an.
    Auf Schleifen kannst du komplett verzichten.



  • Hallo Jansen,
    wo meinst du soll ich suchen?
    in den Forum und CBuilder Hilfe habe ich nichts gefunden.
    Gruß
    C++_Hoby



  • ach ich weiß jetzt was du meinst:
    z.B:
    Liste->Strings[i].Pos("=") > 1 usw.
    ich werde es aus probieren und euch berichten was geworden ist.
    danke
    C++_Hoby



  • Sorry, ich meinte natürlich TStringList::IndexOf().



  • tatsächlich, es hat geklappt.
    vielen Dank


Anmelden zum Antworten