' ' Bankkommunikationsskript für BANK24. ' ' Erste Erstellung: 13.02.1999 ' Letzte Änderung : 07.03.1999 ' Autor: Volker Bartuseck ' ' basierend auf: ' Bankkommunikationsskript für POSTBANK. ' ' von: Christian Kaben ' LISTFILE$ := "BankManager:LISTFILE.PBK" EINUEB$ := "BankManager:EINUEB" SAMUEB$ := "BankManager:SAMUEB" SAMLST$ := "BankManager:SAMLST" EINUEBE$ := "BankManager:EINUEBE" SAMUEBE$ := "BankManager:SAMUEBE" SAMLSTE$ := "BankManager:SAMLSTE" KSTAND$ := "BankManager:KTOSTAND.PBK" AUSZUG$ := "BankManager:AUSZUG.PBK" UEBEXTENSION$ := ".PBK" 'Maximale Länge von Empfänger- und Textfeldern. MAX_EM_LEN:=27 MAX_TX_LEN:=27 '**** Einlesen der Steuerdatei, ' eingerückt bedeutet Zeilen werden überlesen open #1,LISTFILE$,"r" 'Version INPUT$:=input$ #1 'Einzelüberweisung INPUT$:=input$ #1 EINUEB := val(INPUT$) 'überweisung INPUT$:=input$ #1 'überweisung INPUT$:=input$ #1 'überweisung INPUT$:=input$ #1 'überweisung INPUT$:=input$ #1 'Sammelüberweisung INPUT$:=input$ #1 SAMUEB := val(INPUT$) 'Sammellastschrift INPUT$:=input$ #1 SAMLAS := val(INPUT$) 'Kontoauszüge holen? INPUT$:=input$ #1 AUSZUG := val(INPUT$) 'Datum letzter Kontoauszug INPUT$:=input$ #1 LAUSZUG$ := INPUT$ 'Kontostand abfragen? INPUT$:=input$ #1 STAND := val(INPUT$) 'PIN INPUT$:=input$ #1 PIN$ := INPUT$ 'Startseite INPUT$:=input$ #1 STARTSEITE$ := INPUT$ 'Kontonummer INPUT$:=input$ #1 KONTONR$ := INPUT$ 'Kennwort 1 INPUT$:=input$ #1 'Kennwort 2 INPUT$:=input$ #1 'Kennwort 3 INPUT$:=input$ #1 'Kennwort 4 INPUT$:=input$ #1 'Einzelüberweisung EURO INPUT$:=input$ #1 EINUEBE := val(INPUT$) 'Sammelüberweisung EURO INPUT$:=input$ #1 SAMUEBE := val(INPUT$) 'Sammellastschrift EURO INPUT$:=input$ #1 SAMLASE := val(INPUT$) close #1 ' Wenn in der Datei keine PIN steht, vom Anwender erfragen while (len(PIN$) < 5) split(2) print "Bitte PIN eingben: "; PIN$ := input$ split(0) wend '**** Zur Startseite der Bank ' if(STARTSEITE$ <> "") ' Erst einmal auf die Nullseite springen. Damit ' verlasse ich ggf. auch einen ER (normalerweise). send(ini$+"0"+ter$) wait(1,0,0,30000) ' Bankrechner aufrufen. send(ini$+STARTSEITE$+ter$) wait(1,1,24,30000) ZEILE$ := line$(1) ' Prüfung auf fehlgeschlagenen Versuch. if(left$(ZEILE$,7) <> "BANK 24") split(2) print "Zugang fehlgeschlagen!" print "gefunden", left$(ZEILE$,7) print "soll", "BANK 24" sleep(5000) split(0) goto ENDE: endif ' Es wird nur die Leitseite überprüft ' Die ER-Verbindung ist bei BANK24 erst bei Aktionen gegeben ' D.h. dort muß nocheinmal die Verbindung geprüft werden endif '**** entsprechend der eingstellten die relavaten ' Unterprogramme aufrufen if(STAND > 0) gosub KTOSTAND: endif MAXUEB := EINUEB if(MAXUEB > 0) gosub EINUEB: endif MAXUEB := EINUEBE if(MAXUEB > 0) gosub EINUEBE: endif MAXUEB := SAMUEB if(MAXUEB > 0) gosub SAMUEB: endif MAXUEB := SAMUEBE if(MAXUEB > 0) gosub SAMUEBE: endif MAXUEB := SAMLAS if(MAXUEB > 0) gosub SAMLAS: endif MAXUEB := SAMLASE if(MAXUEB > 0) gosub SAMLASE: endif if(AUSZUG > 0) gosub UMSAETZE: endif '**** Programmende ENDE: end '********************************************************** ' ' U N T E R P R O G R A M M E ' '********************************************************** ' ' K O N T O S T A N D ' KTOSTAND: ' Kontostandmaske aufrufen. send("6") wait(1,0,0,30000) send("2") wait(1,0,0,30000) ' Konotnummer eintragen ' Kontonummern der Bank24 sind immer passend send(KONTONR$) ' PIN eintragen send(PIN$) wait(1,1,24,30000) ' Bestätigung send("19") wait(1,1,24,30000) '**** Jetzt bin ich auf dem ER der Bank24 ' prüfen ob dem so ist ZEILE$ := line$(4) ' Dort sollte die KtoNr stehen if(left$(ZEILE$, 7) <> left$(KONTONR$, 7)) split(3) print "Zugang ER fehlgeschlagen!" print "gefunden", left$(ZEILE$,7) print "soll", left$(ZEILE$,7) sleep(5000) split(0) goto E_KTOSTAND: endif '**** Ergebnisvariablen initialisieren DATUM$ := "" ZEIT$ := "" STAND$ := "" STANDE$ := "" '**** Datum und Uhrzeit auslesen ' ZEILE$ := line$(21) DATUM$ := left$(ZEILE$, 8) ZEIT$ := mid$(ZEILE$, 10, 5) '**** Betrag DM auslesen ' ZEILE := 8 ZEILE$ := line$(ZEILE) ' Überprüfen ob Saldo if (mid$(ZEILE$, 3, 9) = "Ihr Saldo") ' Zeile von Text und Vorzeichen befreien ZEILE$ := mid$(ZEILE$, 12, 28) ' oder Online-Saldo else ZEILE := 11 ZEILE$ := line$(ZEILE) while ((mid$(ZEILE$, 8, 12) <> "Online-Saldo") and (ZEILE < 22)) ZEILE := ZEILE + 1 ZEILE$ := line$(ZEILE) wend ' Zeile von Text und Vorzeichen befreien ZEILE$ := mid$(ZEILE$, 20, 20) ' Datum und Uhrzeit neu bestimmen DATUM$ := date$ ZEIT$ := time$ endif ' führende Leerzeichen entfernen while (left$(ZEILE$, 1) = " ") ZEILE$ := mid$(ZEILE$, 2, 28) wend STAND$ := ZEILE$ ' Vorzeichen ermitteln und ggf. vorne anfügen ZEILE$ := line$(ZEILE) if (right$(ZEILE$, 1) = "-") STAND$ := "-" + STAND$ endif '**** Betrag EURO auslesen ' ' Auf die Euroseite wechseln send("5") wait(1,1,24,30000) ZEILE := 8 ZEILE$ := line$(ZEILE) ' Überprüfen ob Saldo if (mid$(ZEILE$, 3, 9) = "Ihr Saldo") ' Zeile von Text und Vorzeichen befreien ZEILE$ := mid$(ZEILE$, 12, 28) ' oder Online-Saldo else ZEILE := 11 ZEILE$ := line$(ZEILE) while ((mid$(ZEILE$, 8, 12) <> "Online-Saldo") and (ZEILE < 22)) ZEILE := ZEILE + 1 ZEILE$ := line$(ZEILE) wend ' Zeile von Text und Vorzeichen befreien ZEILE$ := mid$(ZEILE$, 20, 20) endif ' führende Leerzeichen entfernen while(left$(ZEILE$, 1) = " ") ZEILE$ := mid$(ZEILE$, 2, 28) wend STANDE$ := ZEILE$ ' Vorzeichen ermitteln und ggf. vorne anfügen ZEILE$ := line$(ZEILE) if (right$(ZEILE$, 1) = "-") STANDE$ := "-" + STANDE$ endif '**** Daten in Kontostanddatei schreiben ' open #1,KSTAND$,"w" print #1,DATUM$ print #1,ZEIT$ print #1,STAND$ print #1,STANDE$ close #1 '**** Zurück zur Leitseite ' E_KTOSTAND: send("0") wait(1,1,24,30000) return ' ' E I N Z E L Ü B E R W E I S U N G E N ' '**** Einzelüberweisung DM EINUEB: ' Anzahl nicht versandter Überweisungen in Überweisungsdatei COUNTMAX := MAXUEB COUNTNAME$ := EINUEB$ gosub COUNTOPEN: ' keiner mehr da, und tschüss if (COUNTMAX = 0) return endif ' Parameter setzten und Überweisungsunterprogramm aufrufen ISEURO := 0 ANWFILENAME$ := EINUEB$ gosub EUEB: '**** Unterprogrammende return '**** Einzelüberweisung EURO EINUEBE: ' Anzahl nicht versandter Überweisungen in Überweisungsdatei COUNTMAX := MAXUEB COUNTNAME$ := EINUEBE$ gosub COUNTOPEN: ' keiner mehr da, und tschüss if (COUNTMAX = 0) return endif ' Parameter setzten und Überweisungsunterprogramm aufrufen ISEURO := 1 ANWFILENAME$ := EINUEBE$ gosub EUEB: '**** Unterprogrammende return '**** Überweisungsunterprogramm ' EUEB: ' Die Auftragsseite aufrufen. send("7") wait(1,1,24,30000) '**** Ab hier Einspielen der Datensätze. for i:=1 to MAXUEB ' TAN als leer initialisieren, da jeder Auftrag ja seine ' eigene TAN hat (im Gegensatz zu den Sammlern). TAN$ := "" if (ISEURO = 0) ' Überweisungen in DM send("1") else ' Überweisungen in EURO send("2") endif wait(1,0,0,30000) ' nächste Datei mit Überweisungsdaten festlegen FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$ ' Einspielen des aktuellen Überweisungs-Datensatzes. GLOBALERROR := 0 gosub SENDENTRY: '**** der Überweisungs-Datensatz war nicht logisch gelöscht if (GLOBALERROR = 0) ' Überprüfung auf korrekte Überweisungsausführung FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$ GLOBALERROR := 0 gosub CHECK: ' Falsche TAN benutzt if (GLOBALERROR = 99) ' Cursor in das Konto-Nr Feld bringen send(ter$) send(ter$) send(ter$) send(ter$) send(ter$) send(ter$) send(ter$) send(ter$) send(ter$) ' Konotnummer eintragen ' Kontonummern der Bank24 sind immer passend send(KONTONR$) ' PIN eintragen send(PIN$) ' TAN vom Anwender erfragen split(2) print "Bitte TAN eingben: "; TAN$ := input$ split(0) send(TAN$) if (len(TAN$) < 6) send(ter$) endif wait(1,1,24,30000) '**** Bestätigung oder Abbruch if (len(TAN$) < 6) send("2") else send("19") endif wait(1,1,24,5000) ' Nochmal überprüfen, ob jetzt korrekt GLOBALERROR := 0 gosub CHECK: endif ' Fehler bei der Überweisungsausführung if (GLOBALERROR <> 0) split(5) print "Verarbeitung der Überweisung" print " F E H L E R H A F T !!" print " Fehlercode: "; GLOBALERROR print "" print "Programm wird abgebrochen" sleep(5000) split(0) return ' Erfolgreich eingespielten Datensatz als erledigt markieren. else gosub DELETEENTRY: endif '*** if (GLOBALERROR = 0) '*** der Überweisungs-Datensatz war nicht logisch gelöscht endif ' Es kommen noch mehr Überweisungen. if (i < MAXUEB) send("1") ' oder auch nicht else send("0") endif wait(1,1,24,30000) '*** for i:=1 to MAXUEB '*** Ab hier Einspielen der Datensätze. next '**** Programmende return ' ' S A M M E L Ü B E R W E I S U N G E N ' SAMUEB: ' Es gibt KEINE Sammelüberweisung bei Bank24 return SAMUEBE: ' Es gibt KEINE Sammelüberweisung EURO bei Bank24 return ' ' S A M M E L L A S T S C H R I F T E N ' SAMLAS: ' Es gibt KEINE Sammellastschriften bei Bank24 return SAMLASE: ' Es gibt KEINE Sammellastschriften EURO bei Bank24 return ' ' U M S Ä T Z E ' UMSAETZE: ' Umsatzmaske aufrufen. send("6") wait(1,0,0,30000) send("3") wait(1,0,0,30000) ' Konotnummer eintragen ' Kontonummern der Bank24 sind immer passend send(KONTONR$) ' PIN eintragen send(PIN$) ' Auszugsdatum vorgeben mit letztem Datum + 1 Tag gosub NAUSZUG: ' Tag send(left$(NAUSZUG$, 2)) ' Monat send(mid$(NAUSZUG$, 4, 2)) ' der nächste Auszug ist auch der letzte LAUSZUG$ := NAUSZUG$ wait(1,1,24,30000) ' Bestätigung send("19") wait(1,1,24,30000) '**** Jetzt bin ich auf dem ER der Bank24 ' prüfen ob dem so ist ZEILE$ := line$(4) ' Dort sollte die KtoNr stehen if(left$(ZEILE$, 7) <> left$(KONTONR$, 7)) split(3) print "Zugang ER fehlgeschlagen!" print "gefunden", left$(ZEILE$,7) print "soll", left$(ZEILE$,7) sleep(5000) split(0) goto E_UMSAETZE: endif '**** prüfen on neue Umsätze vorhanden sind FOUNDAUSZUG := 0 ZEILE$ := line$(10) if (mid$(ZEILE$, 3, 13) <> "Seither keine") FOUNDAUSZUG := 1 endif '**** wenn neue Umsätze vorhanden sind, auswerten if (FOUNDAUSZUG > 0) open #4,AUSZUG$,"a" ' Alle Seiten mit Umsätzen auswerten repeat gosub LESEUMSATZ: ZEILE$ := line$(23) WEITER$ := right$(ZEILE$, 1) ' Wei er zur nächsten Seite, wenn noch nicht Ende if (WEITER$ <> "0") send(ter$) wait(1,1,24,30000) endif until (WEITER$ = "0") close #4 ' letztes Auszugsdatum in Steuerdatei aktualisieren gosub RESETADATE: endif '**** Zurück zur Leitseite ' E_UMSAETZE: send("0") wait(1,1,24,30000) return ' ' B I B L I O T H E K ' =================== ' ' =================== ' aus dem letzten Auszugdatum das neue Auszugdatum ermitteln NAUSZUG: NAUSZUG$ := LAUSZUG$ LAUSZUG$ := "" ' letztes Auszugsdatum erfragen while (len(LAUSZUG$) <> 6) split(3) if (len(NAUSZUG$) <> 6) print "Kein letztes Auszugsdatum vorhanden" print "Bitte eingeben (Format 'TT.MM.')" else print "Letzter Auszug war vom "; NAUSZUG$ print "Bitte eingeben (Format 'TT.MM.') "; print "oder mit RETURN bestaetigen" endif LAUSZUG$ := input$ if (len(LAUSZUG$) <> 6) LAUSZUG$ := NAUSZUG$ endif split(0) wend NA_TAG := val(left$(LAUSZUG$, 2)) NA_MONAT := val(mid$(LAUSZUG$, 4, 2)) ' vergiss die Schaltjahre, nächster Tag ist 1. März if (NA_TAG = 28 and NA_MONAT = 2) NA_TAG := 1 NA_MONAT := 3 endif ' die Monate mit 30 Tagen, nächster Tag ist nächster 1. if (NA_TAG = 30) if (NA_MONAT = 4 or NA_MONAT = 6 or NA_MONAT = 9 or NA_MONAT = 11) NA_TAG := 1 NA_MONAT := NA_MONAT + 1 endif endif ' der Rest bei 31 Tagen, nächster Tag ist nächster 1. if (NA_TAG = 31) NA_TAG := 1 NA_MONAT := NA_MONAT + 1 ' oder einfach nur der nächste Tag else NA_TAG := NA_TAG + 1 endif ' das Jahr ist rum, der nächste Tag ist der 1. Januar if (NA_MONAT = 13) NA_TAG := 1 NA_MONAT := 1 endif ' wieder zum String zusammen bauen NA_TAG$ := str$(NA_TAG) if (len(NA_TAG$) = 1) NA_TAG$ := "0" + NA_TAG$ endif NA_MONAT$ := str$(NA_MONAT) if (len(NA_MONAT$) = 1) NA_MONAT$ := "0" + NA_MONAT$ endif NAUSZUG$ := NA_TAG$ + "." + NA_MONAT$ + "." return ' =================== ' Überprüfung eines Eingabefeldes CHECKENTRY: STRIPBLANKS$ := MID$ gosub STRIPBLANKS: gosub STRIPLEADS: if (INPUT$ <> STRIPBLANKS$) split(5) print "Soll: [";INPUT$;"] Ist: [";STRIPBLANKS$;"]" print "UNGLEICH !!!" print "" print "Weiter mit RETURN "; DUMMY$ := input$ split(0) GLOBALERROR := 1 endif return ' =================== ' Überprüfung eines eingegebenen Kontonummer ' Dazu in beiden Fällen führende Nullen entfernen ' Bank24 ergänzt immer führende Nullen bei Bestätigung ' und bei der Eingabe könnten sie sein, oder auch nicht CHECKKONTO: STRIPZERO$ := INPUT$ gosub STRIPZERO: INPUT$ := STRIPZERO$ STRIPBLANKS$ := MID$ gosub STRIPBLANKS: gosub STRIPLEADS: STRIPZERO$ := STRIPBLANKS$ gosub STRIPZERO: STRIPBLANKS$ := STRIPZERO$ if (INPUT$ <> STRIPBLANKS$) split(5) print "Soll: [";INPUT$;"] Ist: [";STRIPBLANKS$;"]" print "UNGLEICH !!!" print "" print "Weiter mit RETURN "; DUMMY$ := input$ split(0) GLOBALERROR := 1 endif return ' =================== ' trailing blanks löschen STRIPBLANKS: STRIPLEN := len(STRIPBLANKS$) while (mid$(STRIPBLANKS$, STRIPLEN, 1) = " ") STRIPBLANKS$ := left$(STRIPBLANKS$, STRIPLEN-1) STRIPLEN := len(STRIPBLANKS$) wend return ' =================== ' leading blanks löschen STRIPLEADS: STRIPLEN := len(STRIPBLANKS$) while (left$(STRIPBLANKS$, 1) = " ") STRIPBLANKS$ := mid$(STRIPBLANKS$, 2, STRIPLEN) STRIPLEN := len(STRIPBLANKS$) wend return ' =================== ' führende Nullen löschen STRIPZERO: STRIPLEN := len(STRIPZERO$) while (left$(STRIPZERO$, 1) = "0") STRIPZERO$ := mid$(STRIPZERO$, 2, STRIPLEN) STRIPLEN := len(STRIPZERO$) wend return ' =================== ' die Überweisungsmaske füllen SENDENTRY: open #1,FILENAME$,"r" ' Eintrag schon logisch gelöscht ? INPUT$ := input$ #1 if (left$(INPUT$, 1) = "D") ' das wars und tschüss GLOBALERROR:=-1 close #1 return endif ' Versionsnummer INPUT$ := input$ #1 ' Bankleitzahl INPUT$ := input$ #1 send(INPUT$) ' Kontonummer INPUT$ := input$ #1 send(INPUT$) if (len(INPUT$) < 10) send(ter$) endif ' Empfänger INPUT$ := input$ #1 send(INPUT$) if (len(INPUT$) < MAX_EM_LEN) send(ter$) endif ' DM INPUT$ := input$ #1 send(INPUT$) ' Bank24 akzeptiert nur DM Beträge bis zu 9.999.999 if (len(INPUT$) < 7) send(ter$) endif ' Pf INPUT$ := input$ #1 send(INPUT$) if (len(INPUT$) < 2) send(ter$) endif ' Zweck 1 INPUT$ := input$ #1 send(INPUT$) if (len(INPUT$) < MAX_TX_LEN) send(ter$) endif ' Zweck 2 INPUT$ := input$ #1 send(INPUT$) if (len(INPUT$) < MAX_TX_LEN) send(ter$) endif ' Zweck 3 '**** Zweck 3 ist im Bankmodul noch nicht vorgesehen INPUT$ := "" send(INPUT$) if (len(INPUT$) < MAX_TX_LEN) send(ter$) endif ' Zweck 4 '**** Zweck 4 ist im Bankmodul noch nicht vorgesehen INPUT$ := "" send(INPUT$) if (len(INPUT$) < MAX_TX_LEN) send(ter$) endif ' Konotnummer eintragen ' Kontonummern der Bank24 sind immer passend send(KONTONR$) ' PIN eintragen send(PIN$) ' TAN TAN$ := input$ #1 ' Wenn in der Datei keine steht, vom Anwender erfragen while (len(TAN$) < 6) split(2) print "Bitte TAN eingben: "; TAN$ := input$ split(0) wend send(TAN$) wait(1,1,24,30000) '**** Bestätigung send("19") wait(1,1,24,5000) close #1 return ' =================== ' Das Ergebnis der Überweisung überprüfen CHECK: '**** Überprüfen ob ich auf der Bestätigungsseite bin wait(1,0,0,30000) ZEILE$ := line$(3) ' Dort sollte die KtoNr stehen if (mid$(ZEILE$, 21, 7) <> left$(KONTONR$, 7)) '**** Überprüfung auf Fehlerhafte TAN ZEILE$ := line$(22) if (mid$(ZEILE$, 15, 12) = "nummer nicht") GLOBALERROR := 99 else GLOBALERROR := 98 endif return endif ZEILE$ := line$(17) ' Dort sollte der Dank stehen if (left$(ZEILE$, 11) <> "Vielen Dank") GLOBALERROR := 97 return endif '**** Ich bin auf der Bestätigungsseite '**** Damit ist bei Bank24 die Überweisung gelaufen !!! '**** Die Kontrolle beschränkt sich darauf zu überprüfen, '**** ob die Überweisung wie gewünscht ausgführt wurde '**** und das Programm im Zweifelsfalle abzubrechen! open #1,FILENAME$,"r" INPUT$ := input$ #1 ' Eintrag schon gelöscht ? if (left$(INPUT$, 1) = "D") GLOBALERROR:=-1 close #1 return endif ' Versionsnummer INPUT$ := input$ #1 ' Bankleitzahl INPUT$ := input$ #1 ZEILE$ := line$(7) MID$ := mid$(ZEILE$, 13, 8) gosub CHECKENTRY: ' Kontonummer INPUT$ := input$ #1 ZEILE$ := line$(9) MID$ := mid$(ZEILE$, 13, 10) gosub CHECKKONTO: ' Empfänger INPUT$ := input$ #1 ZEILE$ := line$(10) MID$ := mid$(ZEILE$, 13, MAX_EM_LEN) gosub CHECKENTRY: ' DM INPUT$ := input$ #1 ZEILE$ := line$(12) MID$ := mid$(ZEILE$, 18, 7) gosub CHECKENTRY: ' Pf INPUT$ := input$ #1 ZEILE$ := line$(12) MID$ := mid$(ZEILE$, 31, 2) gosub CHECKENTRY: ' Zweck 1 INPUT$ := input$ #1 ZEILE$ := line$(13) MID$ := mid$(ZEILE$, 13, MAX_TX_LEN) gosub CHECKENTRY: ' Zweck 2 INPUT$ := input$ #1 ZEILE$ := line$(14) MID$ := mid$(ZEILE$, 13, MAX_TX_LEN) gosub CHECKENTRY: ' Zweck 3 '**** Zweck 3 ist im Bankmodul noch nicht vorgesehen 'INPUT$ := input$ #1 'ZEILE$ := line$(15) 'MID$ := mid$(ZEILE$, 13, MAX_TX_LEN) 'gosub CHECKENTRY: ' Zweck 4 '**** Zweck 4 ist im Bankmodul noch nicht vorgesehen 'INPUT$ := input$ #1 'ZEILE$ := line$(16) 'MID$ := mid$(ZEILE$, 13, MAX_TX_LEN) 'gosub CHECKENTRY: close #1 return ' =================== ' Überweisungsdatensatz logisch löschen DELETEENTRY: open #1,FILENAME$,"r+" print #1,"D"; close #1 return ' =================== ' Anzahl der noch nicht versandten Aufträge zählen. COUNTOPEN: CMAX := 0 for i:=1 to COUNTMAX FILENAME$ := COUNTNAME$+str$(i-1)+UEBEXTENSION$ open #1,FILENAME$,"r" INPUT$ := input$ #1 ' Eintrag noch nicht gelöscht ? if (left$(INPUT$, 1) <> "D") CMAX := CMAX + 1 endif close #1 next COUNTMAX := CMAX return ' =================== ' Umsätze auf einer Seite lesen. LESEUMSATZ: ' Umsätzte stehen von Zeile 8 bis 22 (theoretisch) ZEILE := 8 while (ZEILE < 23) ZEILE$ := line$(ZEILE) ' so beginnt ein Umsatz if (mid$(ZEILE$, 8, 4) = "Wert") ' erste Umsatzzeile aufbereiten LAUSZUG$ := left$(ZEILE$, 6) UZEILE1$ := mid$(ZEILE$, 8, 11) ' Betrag auf 5 Stellen extrahieren und Pfennige (2 Stellen) ' ein führendes Leerzeichen, Tausender ., Komma, Vorzeichen BETRAG$ := right$(ZEILE$, 11) ' weiter Zeilen dieses Umsatzes holen und zusammen fügen ZEILE$ := "" ZEILE := ZEILE + 1 STRIPBLANKS$ := line$(ZEILE) gosub STRIPBLANKS: while (len(STRIPBLANKS$) > 0) ZEILE$ := ZEILE$ + " " + STRIPBLANKS$ ZEILE := ZEILE + 1 STRIPBLANKS$ := line$(ZEILE) gosub STRIPBLANKS: wend ' die beiden Zeilen für die Umsatzdatei formatieren ' es sind schon 11 Zeichen drinn, noch 33 drann ' dann bleiben noch 11 Zeichen für den Betrag rechtsbündig UZEILE1$ := UZEILE1$ + left$(ZEILE$, 33) ' ggf. bis zum 44. Zeichen mit Leerzeichen auffüllen ' damit der Betrag rechtsbündig steht while (len(UZEILE1$) < 44) UZEILE1$ := UZEILE1$ + " " wend UZEILE1$ := UZEILE1$ + BETRAG$ ' der Rest (max 44 Zeichen) in die 2. Zeile ' so steht der Betrag frei und ist besser zu lesen UZEILE2$ := mid$(ZEILE$, 34, 44) ' und jetzt alles in die Umsatzdatei print #4, LAUSZUG$ print #4, UZEILE1$ print #4, UZEILE2$ ' Leerzeilen und sonstiges überlesen else ZEILE := ZEILE + 1 endif wend return ' =================== ' Auszugsdatum neu setzen. RESETADATE: open #1,LISTFILE$,"r" RAZEILE$ := "" 'Version INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Einzelüberweisung INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'überweisung INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'überweisung INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'überweisung INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'überweisung INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Sammelüberweisung INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Sammellastschrift INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Kontoauszüge holen? INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Datum letzter Kontoauszug INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + LAUSZUG$ + chr$(10) 'Kontostand abfragen? INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'PIN INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Startseite INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Kontonummer INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Kennwort1 INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Kennwort2 INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Kennwort3 INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Kennwort4 INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Einzelüberweisung Euro INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Sam(elüberweisung Euro INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) 'Sammellastschrift Euro INPUT$:=input$ #1 RAZEILE$ := RAZEILE$ + INPUT$ + chr$(10) close #1 open #1,LISTFILE$,"w" print #1,RAZEILE$; close #1 return