StringRegExpReplace - Tool für Aktenprotkolle - bitte hilfe :)

  • Hallo zusammen,

    ich benötige mal wieder eure Hilfe :)

    Ich möchte gerne eine Tabelle anlegen lassen.

    Das heißt, ich lese Inputboxen aus, & verarbeite dies in einer Datei.

    bsp. erstens: Eine Akte wird entnommen.

    Die Akte sowie dazugehöriges wird mit einem Barcode Scanner abgescannt.
    Dieser überträgt die Zahlen und begriffe in die Input boxen.

    Durch bestätigen wird eine Datei erstellt. bzw.

    wenn die Datei existiert soll diese gefüllt werden.

    Mit folgendem Inhalt :

    Inhalt der erstellten *txt

    Code
                                   <Data><STATUS>nicht im Fach</STATUS><DATUM> $datum </DATUM><UHRZEIT> $uhrzeit </UHRZEIT><ART> Name-Akte </ART><SBO>alteSeriennummer</SBO><SBN> bleibt leer </SBN><LStatus>NOT</LStatus></Data>


    zweitens : Die Akte wurde entnommen, die Zentrale bekommt eine Pusch Nachricht.(von einem anderen script die die erstellte datei überwacht.)

    die zentrale trägt alteSeriennummer ins system ein.Nun möchte ich die Datei verändern lassen.

    von <LStatus>NOT</LStatus> soll nun nach dem bestätigen in <LStatus>YES</LStatus>,

    umgetragen werden.


    drittens : die Akte ist zurück, nun soll <STATUS>‘zurück im fach‘</STATUS>

    & <SBN>‘neueSeriennummer‘</SBN> geändert werde und das wieder zu <LStatus>Wait</LStatus> bis die neue nummer von der zentrale wieder bestätigt wurde.

    Wie mache ich das? als Anhaltspunkt sind <STATUS>nicht im Fach</STATUS> & <SBN></SBN> leer sowie der Aktenname <ART> Name-Akte </ART>.

    Ich habe etwas mit StringRegExpReplace rumgetestest bin aber zu keinem vernünftigem Ergebnis gekommen. Die enddatei soll natürlich immer weiter geführt werden wie ein Logbuch.
    Hier mal meine dateien die ich bisher habe, wenn ihr es ausführt habt ihr vielleicht ein besseres Bild davon was ich machen will.

    Die rumexperimentation mit StringRegExpReplace habe ich mal rausgenommen um euch die übersicht zu wahren. bisher läuft nur die GUI die Txt datei muss man selber erstellen um es zu testen.
    Da ich noch nicht weiß ob genau so die Enddatei aufgebaut wird wie es grad der fall ist oder noch was hinzukommtsteht noch aus

    Ihr würdes mir schon helfen wenn ich das Array durch gehe, darin den selben akten namen finde prüfe auf welchem status <STATUS></STATUS> & <LStatus></LStatus> steht und diese werte dann ensprechend mit

    StringRegExpReplace ändern kann ohne die anderen zeilen anzutasten oder es komplett neu in die datei zu schreiben.

    Ich danke schon mal für eure weißheiten :)

    #include : 1.au3

    Script Datei 2.au3:

  • Die Daten liegen als XML formatiert vor und sollten daher am besten auch so behandelt werden.
    Sprich: Seh ich XML lass ich Finger von RegEx.

    Beispiel:

  • @AspirinJunkie

    Es ist eigentlich eine Super Sache, aber leider bekomme ich immer den Fehler: Fehler beim Öffnen der Datei 


    Ich habe gemerkt sobald eine weitere Zeile in der *txt datei steht kommt der fehler.

    Ich verstehe auch nicht ganz wie er dann die richtige Zeile findet wenn es mehrere '/Data/LStatus' -> <Data><LStatus></LStatus></Data> Zeilen davon gibt.

  • Kann vieles bedeuten.
    Evtl. ist die Datei nicht xml konform.
    Oder ein falscher Dateipfad.

    Können wir halt nicht reproduzieren ohne konkretes Beispiel bei dem es scheitert.

    Ich verstehe auch nicht ganz wie er dann die richtige Zeile findet wenn es mehrere '/Data/LStatus' -> <Data><LStatus></LStatus></Data> Zeilen davon gibt.

    Das lässt sich entweder direkt über den >>XPath<< (das Konstrukt /Data/LStatus) filtern oder indem man mehrere Nodes auswählt und diese dann in einer Schleife durchläuft.

  • wollte kurz Rückmeldung geben.

    @AspirinJunkie

    du hattest recht, ich kenne mich eigentlich Garnicht mit XML Dateien und deren Struktur aus.

    Habe jetzt die Struktur geändert & nun funktioniert es auch mit mehreren Zeilen.

    allerdings habe ich immer noch ein Problem, habe aber grad wenig zeit.

    Werde das neue Problem mit beispiel später oder morgen hier verfassen.