bestimmten abschnitt speichern
-
Hallo,
ich habe folgendes Problem:
In meinem Programm habe ich ein Memo Fenster in dem ich eine Text stehen habe z.B:%MM10000
TEXT
TEXT
TEXT
TEXT
%MM20000ich möchte jetzt von dem ersten % Zeichen bis zum zweiten % Zeichen den Text unter dem nach dem % Zeichen folgendem Namen speichern. hier MM10000
könnt ihr mir weiter helfen?
mfg imme
-
Hi,
guck dir mal die Funktionen strpbrk bzw. strtok an.
Gruß,
Guido
-
Hallo
@ imme : Was ist denn genau dein Problem? Das Filtern des gewünschten Textes, oder das Speichern?
Ich würde lieber nicht die von GNiewerth erwähnten C-Funktionen benutzten, sondern lieber die AnsiString-Methoden.bis bald
akari
-
das filtern!
mfg alex
-
Mach Dir mal ein neues Projekt, papp einen Button drauf und füge folgendes in die OnClick() ein
void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList* slDaten = new TStringList(); TStringList* slTemp = new TStringList(); slDaten->Add("%MM10000"); slDaten->Add("TEXT1"); slDaten->Add("TEXT1"); slDaten->Add("TEXT1"); slDaten->Add("TEXT1"); slDaten->Add("%MM20000"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("TEXT2"); slDaten->Add("%MM30000"); slDaten->Add("TEXT3"); slDaten->Add("TEXT3"); slDaten->Add("TEXT3"); slDaten->Add("TEXT3"); slDaten->Add("TEXT3"); slDaten->Add("TEXT3"); for (int i = 0; i < slDaten->Count; i++) { if (slDaten->Strings[i].AnsiPos("%") == 1) { if (!slTemp->Text.IsEmpty()) { slTemp->SaveToFile(slTemp->Strings[0] + ".txt"); slTemp->Clear(); } slTemp->Add(slDaten->Strings[i].SubString(2, slDaten->Strings[i].Length() - 1)); } else slTemp->Add(slDaten->Strings[i]); } if (!slTemp->Text.IsEmpty()) { slTemp->SaveToFile(slTemp->Strings[0] + ".txt"); } delete slDaten; delete slTemp; }
Zumindest sollte Dir das einen Anhaltspunkt geben, wie man das Problem lösen kann.