String in Textdatei suchen



  • Huhu, da bin ich wieder 🙂
    Ich programmiere gerade einen Messenger. Dort kann man beim Login mit seinen Userdaten (z.Z. noch egal, was man eintippt) seinen Usernamen speichern, um sich das nächste Mal schneller einloggen zu können.
    Damit dieser Username nach dem beenden und starten des Programms noch immer in der ComboBox steht, wird das ganze in eine Textdatei gespeichert.

    Nun kommt mein Problem:
    Ich programmiere gerade die Möglichkeit, dass man seinen Usernamen aus der Liste löschen kann; das habe ich auch schon mit

    ComboBox1->DeleteSelected();
    ComboBox1->Text = "";
    

    hinbekommen.

    Nur jetzt ist der Username noch in der Textdatei und wird beim nächsten Aufruf des Programmes natürlich wieder in die ComboBox geladen..
    Habt ihr eine Ahnung, wie man nach dem String (Usernamen), den man löschen möchte, in der Textdatei sucht und ihn auch dort löscht?

    Grüße,
    Christian



  • Die ComboBox-Items sind Abkömmlinge von TStrings, diese kannst Du mit SaveToFile() direkt in Deine Datei schreiben.



  • Hallo

    Wenn du ihn wirklich löschen willst, must du diese Datei in eine TStringList einlesen, die Zeile mit dem Namen suchen, löschen und das ganze wieder speichern (siehe dazu die BCB-Hilfe zu TStringList bzw. TStrings).

    Eleganter wäre es aber einfach die in der ComboBox verhandene neue, verkürzte Liste der Namen zu nehmen und damit die alte Datei zu überschreiben. Schließlich ist TComboBox::Items auch ein TStrings-Objekt und hat auch eine SaveToFile-Methode.

    bis bald
    akari



  • witte schrieb:

    Die ComboBox-Items sind Abkömmlinge von TStrings, diese kannst Du mit SaveToFile() direkt in Deine Datei schreiben.

    Huh? Die sind doch schon drin..

    Danke akari, ich probiers später mal! Bin mal einkaufen.. 😉
    Grüße,
    Christian



  • Hallo

    witte meinte genau dasselbe wie ich : überschreib die alte Datei mit den aktuellen Namen aus der ComboBox.

    bis bald
    akari


Log in to reply