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
akariDanke.
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:
übersichtlichAnsiString 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:
übersichtlichAnsiString 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.