Wörter aus Datei "daten.txt" lesen



  • ich denke Du solltest auf jeden Fall ein CSV-Fomat wählen.
    D.h. deine Einträge in der Text-Datei werden z.B. durch ein ";" getrennt.

    Gruß
    Wes



  • Hiermit kann ich die Zeichen bis zum Leerzeichen lesen:

    das Haus, la maison
    
    Edit1->Text = ComboBox1->Items->Strings[0].LastDelimiter(',');
    

    In Edit1->Text steht dann 9. Also 9, das Zeichen Komma.

    Jetzt muß ich probieren, wie ich die 8 Zeichen davor (das Haus) in Text umwandeln kann.



  • Hallo

    Siehe AnsiString::SubString

    bis bald
    akari



  • akari schrieb:

    Hallo

    Siehe AnsiString::SubString

    bis bald
    akari

    Danke.

    OK, ich habs:

    ComboBox1->Items->LoadFromFile("daten.txt");
    
    d = ComboBox1->Items->Strings[0];
    
    dat = d.SubString(d.LastDelimiter(",")==0,d.Length()-d.LastDelimiter(",")-1);
    
    Edit1->Text = dat;
    

    In Edit1 steht jetzt nur "das Haus".

    Mit:

    dat = d.SubString(d.LastDelimiter(",")+1,d.Length()-d.LastDelimiter(","));
    

    steht in Edit1 "la maison"

    Vielleicht gibt es auch einen kürzeren Weg, aber der hier funktioniert.



  • Verbesserung:

    dat = d.SubString(d.LastDelimiter(",")==0,d.Length()-d.LastDelimiter(",")-2);
    

    Dann ist auch das Komma-zeichen weg.



  • d.LastDelimiter(",")==0 😕

    ich würde das so machen:
    übersichtlich

    AnsiString d = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
       int TrennPos = d.LastDelimiter(",");
       d = d.SubString(1,TrennPos -1);
       Edit1->Text = d;
    

    oder confuse 😃

    Edit1->Text = ComboBox1->Items->Strings[ComboBox1->ItemIndex].SubString(1,ComboBox1->Items->Strings[ComboBox1->ItemIndex].LastDelimiter(",") -1);
    

    oder wahrscheinlich so

    AnsiString d = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
       Edit1->Text = d.SubString(1,d.LastDelimiter(",") -1);
    

    kanst auch mit SetLength arbeiten.



  • OldMan00 schrieb:

    d.LastDelimiter(",")==0 😕

    ich würde das so machen:
    übersichtlich

    AnsiString d = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
       int TrennPos = d.LastDelimiter(",");
       d = d.SubString(1,TrennPos -1);
       Edit1->Text = d;
    

    oder confuse 😃

    Edit1->Text = ComboBox1->Items->Strings[ComboBox1->ItemIndex].SubString(1,ComboBox1->Items->Strings[ComboBox1->ItemIndex].LastDelimiter(",") -1);
    

    oder wahrscheinlich so

    AnsiString d = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
       Edit1->Text = d.SubString(1,d.LastDelimiter(",") -1);
    

    Es geht auch mit:

    d.SubString(d.LastDelimiter(",")<1,
    

    Ich habe Ihren Code ausprobiert, aber es steht kein Text in Edit1.



  • Verzeihung. 🙂

    Nehme das zurück: (Ich habe Ihren Code ausprobiert, aber es steht kein Text in Edit1.)

    Habe noch nicht die anderen Möglichkeiten ausprobiert.



  • OldMan00 schrieb:

    oder wahrscheinlich so

    AnsiString d = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
       Edit1->Text = d.SubString(1,d.LastDelimiter(",") -1);
    

    Ich nehme das. Meins war falsch.

    Bei [ComboBox1->ItemIndex] muß ich aber die Nummer vom Index eingeben, sonst sehe ich kein Text in Edit1. Also [ComboBox1->ItemIndex,2]

    Wie bekomme ich jetzt aber alle Items aus der ComboBox in die ListBox auch nur bis zum Komma?

    danke



  • Marc schrieb:

    Bei [ComboBox1->ItemIndex] muß ich aber die Nummer vom Index eingeben, sonst sehe ich kein Text in Edit1. Also [ComboBox1->ItemIndex,2]

    dann setzte halt Style auf csDropDownList oder will Du Einträge in die ComboBox per Hand eingeben wollen ? Am besten Du setzt den code in das OnClick Ereignis der ComboBox.

    Marc schrieb:

    Wie bekomme ich jetzt aber alle Items aus der ComboBox in die ListBox auch nur bis zum Komma?

    durch eine z.B. 'for' Schleife.


Anmelden zum Antworten