TXT Datei auslesen und einzelne Zeichenfolgen in Variablen ablegen



  • 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.10

    Ich 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 Voraus

    mfg



  • 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


Anmelden zum Antworten