TXT Datei auslesen und einzelne Zeichenfolgen in Variablen ablegen
-
Annahme: cpBuffer ist der Inhalt deiner .txt Datei:
bool bready=false; while(bready==false){ for(unsigned int i=0;i<strlen(cpBuffer);i++){ if(cpBuffer[i]=='$') //wobei $ dein gesuchtes Zeichen ist bready=true; } }
-
Dann doch lieber so:
AnsiString asFileName; // hier Dateiname der Textdatei, am besten inkl. Pfad AnsiString asSuchbegriff; // die gesuchte Zeichenfolge TStringList* slTemp = new TStringList(); slTemp->LoadFromFile(asFileName); // Datei laden if (slTemp->Text.AnsiPos(asSuchbegriff)) // liefert die Position des Suchbegriffs im Text zurück, 0 wenn nicht vorhanden { // was auch immer } delete slTemp;Nur bei großen Dateien würde ich mir die Mühe machen, die Datei nur teilweise einzulesen.
-
Joe_M. schrieb:
Nur bei großen Dateien würde ich mir die Mühe machen, die Datei nur teilweise einzulesen.
Wieso nur teilweise einlesen?? ich hab doch eh gesagt dass in cpBuffer die ganze .txt steht, also warum nur teilweise????? kapier ich nicht.
-
Da steht nur 'ist der Inhalt deiner .txt Datei'. Von ganz oder teilweise steht da nichts.
-
ja gemeint hab ich schon alles oder zumindest den Teil der er einliest. hängt ja dann vom restlichen Code ab.
-
Danke für eure Antworten.
Da ich noch nicht so fit in c++ bin, hab ich da noch mal ne Frage an euch.
Wie schaffe ich es die gefundene Zeichenfolge auszulesen?
Beispiel:
Es handelt sich um eine Logdatei, die z.B. eine Versionsnummer enthält.
z.B. Version = 3.00.10Ich Suche also in der Textdatei nach dem Begriff 'Version', dieser wird dann auch gefunden, aber wie lese ich jetzt die Relevante Info aus?
Also in diesem Fall entweder die Komplette Zeichenfolge 'Version = 3.00.10' oder aber nur '3.00.10'.Vielleicht kann mir nochmal jemand helfen.
Danke schonmal im Vorausmfg
-
Hallo
wenn es eine TStringList ist, schau dir TStringList::Values an. dort kannst du direkt mit den Werte-IDs arbeiten, um den Wert zu ermitteln und zu setzen.
Ansonsten schau dir die AnsiString-Funktionen an, um den String zuzerlegen
bis bald
akari
-
ich hab genau gestern was darüber geschrieben
ne for schleife!:
zuerst stellt man fest wie viele zeichen der string hat und dann wird jedem zeichen eine neue variable zugewiesen!:int termz, f; //termz prüft wieviel zeichen der string hat, f ist eine hilfsvariable String stop; while (stop != "stop") s[100] const String term = "hi wie geths??"; { termz++; try { f = term[termz]; } catch (...) { stop = "stop"; termz--; } } // in der for schleife wird s[1]-s[termz] den zeichen des Strings zugewiesen for (int i=1; i<(termz +1);i++) { s[i] = term[i]; };
-
Hallo,
ich hab da mal ne frage.
Ich lese ebenfalls eine txt datei in ein Memo-Feld mit "LoadFromFile(...)"
Funktioniert auch alles soweit.
Jetzt zu meiner Frage.
Wie stelle ich am sinnvollsten an, in diesem Memofeld (kann ein paar Tausend Zeilen enthalten) nach bestimmten Begriffen zu suchen, und wenn diese gefunden werden, den Suchbegriff und einige zeichen dahinter in einem Edit-Feld auszugeben?Hat jemand vielleicht ein Beispiel?
Für eure Hilfe wär ich euch dankbar.Viele Grüsse
cloe
-
Dazu steht in der Hilfe unter der Eigenschaft SELSTART des TMemo Objektes ein komplettes Beispiel
-
Hi,
@mollitz:
irgendwie sieht das wüst aus...
Kennst du die Funktion strlen oder strcmp?
Außerdem sollte man am besten keine Stringvariable als Bedingung für ne while Schleife nehmen. Für deinen Fall würde doch auch eine bool Variable reichen..@chuppy:
Schau dir mal TIniFile an. Vielleicht ist das ganau das was du suchst...MfG
Alexander Sulfrian