Blöcke von Zeichen aus einer Zeile austauschen
-
Hallo,
bin absoluter newbi und stehe vor einem problem.
Ich möchte eine txt einlesen, einzelne Zeilen unterscheiden um dann die "Blöcke" auszutauschen/zu verschieben.
Beispiel:
Inhalt txt
(
4654376 362111 22 323334
7867877 121497 57 216783
)
Die ausgegebene txt soll aber vielleicht so aussehen:323334 22 362111 4654376
216783 57 121497 7867877Ich möchte bestimmen ab welchem Zeichen soundsoviele Zeichen wohin getauscht werden sollen.
Mein code bisher(dank eures Forums):
TStringList *TempList = new TStringList; try{ TempList->LoadFromFile("C:\\text.txt"); Edit1->Text = TempList->Strings[0]; //Zeile1 ausgeben (Test) Edit2->Text = TempList->Strings[1]; //Zeile2 ausgeben (Test) } __finally{ delete TempList;Bitte gebt mir nicht den ganzen Code, führt mich nur an die Lösung ran. Ich will lernen...
Danke,
Nico
-
Würde dir empfehlen:
1. die Strings mit StrPos() nach den Leerzeichen zu durchkämmen
2. mit diesen Infos die Blöcke gennerieren SubString()
3. die Blöcke in der richtige Reihenfolge hinschreiben
-
mh,
kann mir schon vorstellen wie du das meinst aber komme noch nicht wirklich mit der Syntax klar...
-
fals es dir reicht nur bei leerzeichen (oder auch kommas) zutrennen koennte dir die eigenschaft commatext etwas helfen ...
TStringList *TempList = new TStringList(), *KommaZeile = new TStringList(); try{ TempList->LoadFromFile("C:\\text.txt"); KommaZiele->CommaText = TempList->Strings[0]; ShowMessage(KommaZeile->Text); // zum test // jetzt kannst du die einzelnen "spalten" miteinander vertauschen String tmp = KommaZeile->Strings[0]; KommaZeile->Strings[0] = KommaZeile->Strings[1] KommaZeile->Strings[1] = tmp; // und nun nur noch die geaenderte zeile wieder in den text einfuegen TempList->Strings[0] = KommaZiele->CommaText; } __finally{ delete(TempList); delete(KommaZeile); }