WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Software (http://www.wcm.at/forum/forumdisplay.php?f=5)
-   -   MS-Money und Bank Austria / CA --->Keine Onlinedaten (http://www.wcm.at/forum/showthread.php?t=77724)

MUCH 20.11.2002 16:40

ho capito! ;)

Dr. Mabuse 21.11.2002 10:22

WinBatch Quick & Dirty Style, ungetestet:

Code:


old = FileOpen("C:\DATEN\input.asc", "READ")
new = FileOpen("C:\DATEN\output.qif", "WRITE")

newline = "!Type:Bank"
FileWrite(new, newline)

WHILE @TRUE           
  oldline = FileRead(old)
  IF oldline == "*EOF*" THEN BREAK
  IF StrSub(oldline,27,11) == "Valutadatum" THEN
      newline = "^"
      FileWrite(new, newline)
      newline = strcat("D",StrSub(oldline, 40, 2),"/",StrSub(oldline, 43, 2),"/",StrSub(oldline, 46, 4))
      FileWrite(new, newline)
  ENDIF
  IF StrSub(oldline,51,6) == "Betrag" THEN
      newline = strcat("T",StrSub(oldline,58,-1))
      newline = strreplace(newline,"EUR","")
      newline = strreplace(newline," ","")
      newline = strreplace(newline,".","")
      newline = strreplace(newline,",",".")
      FileWrite(new, newline)
  ENDIF
  IF StrSub(oldline,1,12) == "Buchungstext" THEN
      newline = strcat("P",StrSub(oldline,15,-1))
      FileWrite(new, newline)
  ENDIF
ENDWHILE
FileClose(new)
FileClose(old)


Dr. Mabuse 21.11.2002 10:37

* Plonked *

MUCH 21.11.2002 11:55

@Dr.M:

DANKE!!!

Schíck' mir bitte via mail deine KontoNr. & BLZ ---> Donation kommt ;)

Dr. Mabuse 21.11.2002 12:28

* na wirkli ned *

MUCH 21.11.2002 12:44

dann sage ich nochmals danke - es wäre mir aber wirklich eine "Anerkennung" wert!!!

Du hast mir einige Zeit gespart UND VOR ALLEM MIR DAS MS-MONEY "WIEDERBELEBT", indem Du mich auf die Idee mit der QIF-Importdatei gebracht hast!!! :) :) :)

MUCH 22.11.2002 09:26

Es läuft nun alles perfekt!!!
 
Liebe Gemeinde,

mein Problem ist nun bestmöglich gelöst (besser ginge es nur wenn unsere BA-CA den "Datenhahn" für Money wieder aufmachen würde - machen sie aber nicht!!!)
  • Vorgangsweise zum Datenimport
  • Im Internet ins Onlinebanking einsteigen
  • Details zum gewünschten Auszug auswählen (wichtig!!!)
  • Gewünschte Daten markieren und mit STRG-C in die Zwischenablage kopieren
  • Lokale TXT-Datei (bei mir a.txt) öffnen und Zwischenablage einfügen ->speichern
  • Nun kommt der Code zum Zug ---> Konvertierung zum .QIF
  • es wird nun automatisch Money gestartet (da im code die .QIF aufgerufen wird) ->Konto bestätigen - fertig!

Dies mag zwar auf den ersten Blick wirr aussehen, ist aber die einzig machbare Variante, um die Onlinedaten zu importieren.

Ich habe den code von Dr. Mabuse noch ein bisserl verfeinert - es wird nun zwischen Empfängernamen & Beschreibungen unterschieden und richtig zugeordnet - hilft nicht unwesentlich ;)

Einen kleinen Bug hat die Sache noch:
Ich muss an die .TXT-Datei beim Kopieren der Zwischenablage noch zusätzlich drei Leerzeilen anhängen, sonst kommt es zu einem Fehler, da das *EOF* erreicht wäre - sonst passt's aber - vielleicht hat ja unser Dr. Mabuse noch eine Idee dazu...


Ich hoffe, dass dies auch für jemanden anderen nützlich ist - auf Wunsch werde ich diesen Code gerne als .EXE (mit angepassten Pfaden) compilieren, sofern kein WINBATCH vorhanden ist!




Code:

old = FileOpen("H:\temp\a.txt", "READ")
new = FileOpen("H:\temp\output.qif", "WRITE")

newline = "!Type:Bank"
FileWrite(new, newline)

WHILE @TRUE           
  oldline = FileRead(old)
  IF oldline == "*EOF*" THEN BREAK
  IF StrSub(oldline,27,11) == "Valutadatum" THEN
      newline = strcat("D",StrSub(oldline, 40, 10))
      FileWrite(new, newline)
  ENDIF
  IF StrSub(oldline,51,6) == "Betrag" THEN
      newline = strcat("T",StrSub(oldline,58,-1))
      newline = strreplace(newline,"EUR","")
      newline = strreplace(newline," ","")
      newline = strreplace(newline,".","")
      newline = strreplace(newline,",",".")
      FileWrite(new, newline)
  ENDIF

      flag=0
      new1=""
    IF StrSub(oldline,1,12) == "Buchungstext" THEN
      new1 = strcat("M",StrSub(oldline,16,-1))
    IF StrSub(oldline,16,18) == "EZE-Lastschrift a/" THEN   
      new1 = strreplace(oldline,"Buchungstext:  EZE-Lastschrift a/","")
      flag=1
      new1=strcat("P",new1)
    ENDIF
    IF StrSub(oldline,16,13) == "Gutschrift a/" THEN   
      new1 = strreplace(oldline,"Buchungstext:  Gutschrift a/","")
      flag=1
      new1=strcat("P",new1)
    ENDIF
    IF StrSub(oldline,16,14) == "Lastschrift a/" THEN   
      new1 = strreplace(oldline,"Buchungstext:  Lastschrift a/","")
      flag=1
      new1=strcat("P",new1)
    ENDIF
    oldline = FileRead(old)
    IF StrSub(oldline,1,9) == "Empfänger" THEN
      new2 = strcat("P",StrSub(oldline,12,-1))
      FileWrite(new, new2)
      new2 =""
      else
      new2 = oldline
      ENDIF
     
      oldline = FileRead(old)
      new3 = oldline
      oldline = FileRead(old)
      new4 = oldline
      IF flag==0 then
        newline = strcat (new1, new2, new3, new4)
        FileWrite(new, newline)
      else
      FileWrite(new, new1)
      newline = strcat ("M", new2, new3, new4)
      FileWrite(new, newline)
      ENDIF
      newline = "^"
      FileWrite(new, newline)
    ENDIF

ENDWHILE
FileClose(new)
FileClose(old)

run ("H:\temp\output.qif","")


MUCH 22.11.2002 14:24

Auch das "Leerzelenproblem gelöst...
 
Nun habe ich auch noch das Problem mit den Leerzeilen gelöst:

einfach folgenden code ganz oben im listing hinzufügen (vor der ersten Zeile)

Code:

old = FileOpen("H:\temp\a.txt", "APPEND")
oldline=""
filewrite (old,oldline)
filewrite (old,oldline)
filewrite (old,oldline)
FileClose(old)



Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag