Probleme mit Kontoaktualisierung
mh at mike.franken.de
mh at mike.franken.de
Mon Dec 25 23:03:52 GMT 2023
On Montag, 25. Dezember 2023 22:19:21 CET Thomas Baumgart via KMyMoney wrote:
> On Sonntag, 24. Dezember 2023 15:34:50 CET mh--- via KMyMoney wrote:
[...]
> > Das sieht dann z.B. so aus:
> >
> > <TRANSACTION dateposted="2023-12-22" payee="" action="none"
> > amount="-211/25" memo="MICHAEL HIRMKE AMZN Mktp DE*3A7OC0625 LUX
> > 800-279-6620 Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023 für
> > Abrechnung Dezember" number="" bankid="A000259-2023-12-22-1e12880-1"
> > reconcile="0"/>
> >
> > oder
> >
> > <TRANSACTION dateposted="2023-12-22" payee="" action="none"
> > amount="-211/25">
> > memo="MICHAEL HIRMKE
AMZN Mktp DE*3A7OC0625 LUX
> > 800-279-6620
Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023
für
> > Abrechnung Dezember" number="" bankid="A000259-2023-12-22-1e12880-1"
> > reconcile="0"/>
> >
> > wenn ich nicht die Zeilenumbrüche entfernen lasse.
> > Es steht also alles im MEMO-Feld.
> >
> > Sowas wie
> >
> > ^MICHAEL HIRMKE
(.+?)

> >
> > sollte doch dann den Empfänger in $1 fangen.
> > Klappt aber leider nicht 8-(
>
> Das würde ich mit
>
> ^[^\x{0A}]*\x{0A}(.+?)\x{0A}
>
> versuchen. Die Kette "
" ist ja die XML Repräsentation für das Zeichen
> 0x0A, dass aber für den Regex-Ausdruck als "\x{0A}" geschrieben werden muss
hm, kommt das echt als Hex - es steht in der Datei ja verbose die XML-
Repräsentation drin. Ich hätte erwartet, dass ich die dann auch als String "as
is" behandeln muss.
> (ohne die Quotes). Damit Du nur den gewünschten Teil herausbekommst, musst
> Du wissen, dass diese Blöcke aus uralten Zeiten 27 Zeichen lang sind (siehe
> https://www.kontopruef.de/mt940s.shtml und da nach Feldschlüssel 20-29
> suchen). Zum Glück lässt die Sparda diese Blockung bestehen, sonst würde
> das Folgende nicht funktionieren.
>
> Also könnte etwa
>
> ^[^\x{0A}]*\x{0A}(.{27})
>
> die bessere Wahl sein. Für das Memo kannst Du dann folgenden Ausdruck
> probieren:
>
> ^[^\x{0A}]*\x{0A}.{27}(.*)
Ok, thx.
>
> Der Anfang sieht evtl. seltsam aus, sorgt aber dafür, dass mit "\x{0A}"
> das erste 0A und nicht ein anderes getroffen wird. Ich nehme das mal
> auseinander:
>
> ^ - Starte am Anfang des Strings
> [^\x{0A}]* - Beliebig viele Zeichen außer 0x0A
> \x{0A} - Ein 0x0A
> (.{27}) - 27 beliebige Zeichen als Match
Ois roger.
[...]
>
> Ich hoffe, das ist Stupsen genug. Ist alles nicht probiert sondern in
> der Theorie entstanden. Es gilt also: your mileage may vary.
Das wichtigste war der Hint mit der festen Blockung und der, dass man Hex
verwenden muss in der RegEx.
Danke!
>
> Ansonsten: Frohe Weihnachten!
Dito!
Ciao.
Michael.
More information about the KMyMoney
mailing list