Zeichenkette nach bestimmten Zeichen trennen



  • Hallo Leute

    Ich sitze an einen kleinen Testprogramm und wollte mal Probieren aus einer Combobox zu laden und denn nach den Kommas zu trennen und in eine Listbox einzutragen.

    Habe es so versucht :

    void __fastcall THauptForm::AdressBook_ComboSelect(TObject *Sender)
    {
            HeaderBox->Clear(); // Löschen des ListView
    	// Ausgewählter Eintrag wird in die jeweiligen Felder eingetragen
    	HeaderBox->Items->Add(AdressBook_Combo->Items->Text.SubString(0, AdressBook_Combo->Items->Text.Pos(",")-1));
    	HeaderBox->Items->Add(AdressBook_Combo->Items->Text.SubString(AdressBook_Combo->Items->Text.Pos(",")+2, AdressBook_Combo->Items->Text.Lenght());
    
    }
    

    Habe beim Gogglen den Versuch gefunden dies funktioniert auch aber leider nur bis zum ersten Komma, mein BeispielText im Combofeld sieht so aus.

    Combobox:
    --------------------------
    | Meine, Auswahl, hier |<|
    --------------------------

    ListView ( so sieht es aus mit dem Code das soll es aber nicht ):

    -----------------
    | Meine
    | Auswahl, hier
    |
    -----------------

    ListView ( So sollte es aussehen ):

    -----------------
    | Meine
    | Auswahl
    | hier
    -----------------

    Danke für irgendwelchen Rat den Ihr mir geben könnt.

    MFG



  • Hallo,

    also TStringList bietet die Möglichkeit mit CommaText und Delimiter (oder so ähnlich) einen String nach einem bestimmten Buchstaben zu trennen. Jedes Wort wird dann in das Array von TStringList->Strings gepackt und man kann dann praktisch mit TStringList->Strings[n] auf die einzelnen Wörter zugreifen.

    Schaue dir die Klasse TStringList in der Doku an.

    LG
    Hawk



  • Danke Hawkxxx

    hat mit CommaText und Delimiter funktioniert, es geht alleerdings auch mit einer TListView.

    Lösung ( Header Box ) ist die TListView 😉

    void __fastcall THauptForm::AdressBook_ComboSelect(TObject *Sender)
    {
    	// Label wird angezeigt ob Kunde gewählt
    	LabelKDNR->Font->Color = clGreen;
    	LabelKDNR->Caption = L"Kunde ausgewählt";
    	// Lerren der Listview und eintragen des gewählten Kunden
    	HeaderBox->Clear();
    	// Suchen nach dem Komma
    	HeaderBox->Items->Delimiter = ', ';
    	HeaderBox->Items->StrictDelimiter = true;
    	// Einlesen des Textes aus der Combobox
    	HeaderBox->Items->Add(AdressBook_Combo->Items->Text);
    	HeaderBox->Items->CommaText = HeaderBox->Items->Text;
    }
    

    MFG


Anmelden zum Antworten