Bestimmten Text in Datei finden und Text anhängen o. auslesen?
-
Abend,
wie könnte man am einfachsten, einen Text in einer Textdatei finden und das dahinter stehende Wort oder bestimmte Anzahl an Zeilen auslesen und ersetzen?
hoffe es gibt ein einfachen weg

THX
-
Also ich benutze für sowas, falls es eine Text-Datei ist, TStringList. Aber so richtig klar ist mir nicht, was Du meinst. "das dahinter stehende Wort "
-
na er meint wohl wie paramater
mache dies und das und vielleicht noch das
substring, find, indexof, solche sachen der string klasse, Stringlist is recht unkompliziert, sollte sich geil dafür eignen.
-
Moin,
ehm nunja ich habe zb eine text datei gespeichert die so aussieht...
Name:Müller
Vorname:Dieter
Strasse:Ring-Str
Hausnummer:30
Tel:01010Name:Schmidt
Vorname:Martin
Strasse:Kreuz-Str
Hausnummer:1
Tel:1111
.
.
.jetzt dachte ich mir wenn ich im Program, ein Edit Feld namens Name mache und da "Schmidt" eigebe, dann ein Button drücke.
Soll er in die Adressdatei.txt kucken, wo der Name Schmidt ist und mir die restlichen Zeilen wie Vorname ins Editfeld Vorname schreibt usw.
wie müsste so was den aussehen? wäre dankbar für beispielcode
beim RichEdit1->FindTextA gibt er mir schon mal den anfangs index wo das wort beginnt zurück, aber wie weiter?
-
Hallo,
dann wäre TIniFIle wohl eher angebracht...
[Section]
Key=Value[Daten_1]
Name=Schmidt
Vorname=Martin
...mfg, Micha!
-
die text Datei erzeuge ich nicht, die txt kommt aus einem anderen Programm das ich nicht beeinflussen kann
-
schau mal hier, da steht z.B. wie man bestimmte Zeichen findet und ersetzt
-
jep damit bin ich der sache schon ein schritt näher

dies klapt so weit...
int col, row; for(row = 0; row < Form1->RichEdit2->Lines->Count; row++) if ((col=Form1->RichEdit2->Lines->Strings[row].Pos(Edit2->Text)) > 0) { Edit1->Text = Form1->RichEdit2->Lines->Strings[row + 1]; }das problem ist jetzt, daß ich im Edit1 "Vorname:Dieter" stehen habe
frage dazu ist wie könnte ich in den Lines->String...., zb. sagen daß er ab den : den text im editfeld ausgibt?
-
AnsiString::SubString(), AnsiString::Pos(), usw. usf.
-
so geht das also

int row; for(row = 0; row < Form1->RichEdit2->Lines->Count; row++) if (Form1->RichEdit2->Lines->Strings[row].Pos(Edit2->Text)) { Edit1->Text = Form1->RichEdit2->Lines->Strings[row+1].SubString(24,10); }danke für die nette hilfe, ihr seit die besten
