String zerlegen!
-
Hallo Community,
habe einen Textdatei wo ich einzelne Wörter mit einem ";" von einander trenne.
so: Max;Muster;19years;Frankfurt;
beim einlesen möchte ich gerne wieder die einzelnen Wörter getrennt einlesen,
kann ich das automatisieren?Bis dann. Danke
-
Hast du die Wörter als Strings oder als char* vorzuliegen?
Beim String kann man mit
Teilstring = String.SubString(posAnfang, Länge)
Teilsstrings auslesen.
Mit
int CharPos = String.Pos(TrennZeichen) kannst du die Position deines Trennzeichens herausfinden.
Du kannst aber auch gleich beim Einlesen deiner Zeichen ( wenn du alle Zeichen einzeln einliest) Zeichen für Zeichen aneinanderhängen bis zu deinem ";" und dann ein neues Wort erstellen und wieder Zeichen für Zeichen hintenranhängen.
-
-
schau dir mal
ExtractStrings
an
-
Hi,
ich hab mir das mal selbst erstellt und arbeite seit Jahren damit. Wahrscheinlich geht es einfacher und schneller, hab mich aber nie mehr darum gekümmert. Das Flag am Ende gib tan, ob das Trennzeichen hinter dem letzten Eintrag nochmal vorhanden ist oder nicht.
Separator(lstBehandlung->Items->Strings[y], "|", 2, false)
String Separator(String sSourceText, String sSeparatorChar, int iPosition, bool bEndSeparatorChar) { int iAnz = 0; int iPosStart = 0; String sReturn = ""; if (bEndSeparatorChar == false) { sSourceText += sSeparatorChar; } for (unsigned int i = 0; i < sSourceText.Length() + 1; i++) { // Trennzeichen gefunden if (sSourceText.SubString(i,1) == sSeparatorChar) { iAnz++; // Anzahl Trennzeichen = Suchposition if (iPosition == iAnz) { // Wenn die erste Position gesucht wird Startposition setzen if (iPosition == 1) { iPosStart = 0; } // Übergabestring auslesen return sSourceText.SubString(iPosStart + 1, i - iPosStart - 1); } else { // Tennzeichenposition als neuen Startwert setzen iPosStart = i; } } } // Application->MessageBox("Fehler im Übergabestring", "Fehler", MB_OK); return "Fehler im Übergabestring"; }
Ernst