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&#xa;AMZN Mktp DE*3A7OC0625     LUX
> > 800-279-6620&#xa;Karten-Nr. XXXXXXXXXXXXXXXXBeleg vom 20.12.2023&#xa;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&#xa;(.+?)&#xa;
> > 
> > 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 "&#xa;" 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