Zerstückeln und bearbeiten



  • Hallo,
    ich habe eine .txt- datei, wo neben "normalen" wörtern sowas ähnliches steht:

    (as ps "bs ks" ls)

    ich möchte nun z.b. überprüfen ob das erste mit " (as " anfängt. Wenn das der fall sein sollte, soll das wort was zwischen den " " steht in eine Variable gespeichert werden.

    Weiter kann da noch sowas wie:
    (as ls)
    (ks as as as ls)

    stehen. Sowas möchte ich ganz raushaben. Das problem ist nur, dass jede Klammer anderes Aufgebeut ist. Die einzige gemeinsamkeit ist, dass sie mit einer Klammer anfängt und endet.



  • dein problem ist nun nicht ganz anschaulich... das format der textdatei musst du nochmal erklaeren. kommen da drin nur solche klammerkonstrukte vor oder auch anderer text?

    ich an deiner stelle wuerde erstmal eine scriptsprache nehmen, denn damit kommt man schneller zum ziel. fuer den finalen code wuerde ich mich zu c zwingen lassen.
    was die textmanipulation angeht: alle vorkommen von klammern zerlegen und dann bearbeiten.

    hast du mit lisp oder scheme zu tun?



  • Da ist alles gemischt. Beispiel:

    (as as asd df "asd") Hallo, (asa asdl ") beep (!k"n")

    Wie man sieht ... alles ganz komisch wirr ... da muss ich halt nach der oben gennanten regel ordnung reinbringen. Es muss über C laufen. Scriptsprachen sind nicht erlaubt 😞



  • Hat niehmand eine idee?



  • idee: datei zeichenweise lesen.
    wenn eine oeffnende klammer kommt, ausfuehrung an eine unterfunktion uebergeben, welche sich um die klammer kuemmert und dann zurueckkehrt.

    unterfunktion: liest zeichen in einen puffer, bis eine schliessende klammer kommt. dann werden mit strtok() die wortfetzen in der klammer zerstueckelt und weiterverarbeitet.



  • idee: datei zeichenweise lesen.
    wenn eine oeffnende klammer kommt, ausfuehrung an eine unterfunktion uebergeben, welche sich um die klammer kuemmert und dann zurueckkehrt.

    unterfunktion: liest zeichen in einen puffer, bis eine schliessende klammer kommt. dann werden mit strtok() die wortfetzen in der klammer zerstueckelt und weiterverarbeitet.

    Hört sich gut an. Danke 👍



  • Du moechtest also S-Ausdruecke parsen. Dafuer gibt es schon haufenweise Libraries im Internet.
    Folgende hat eine exzellente Dokumentation und ist leicht zu benutzen:
    http://sexpr.sourceforge.net/

    Gruss,
    Christian.


Anmelden zum Antworten