#!/usr/bin/perl -w # Konvertiert Postbank Kontoauszuege nach Quicken Format. # # Syntax: pb2qif # # Ausgabe: .qif # # Thomas Blon # Jengen, Januar 2002 use strict; # Requires declaration of variables before using them. use Cwd; # To read current directory. my @felder; my @datum; #my $outfilename = "$ARGV[0].qif"; my $outfilename = "postbank_giro.qif"; # Test ob Dateiname uebergeben und existiert: if ($#ARGV == 0) # Eine Datei angegeben? { if (open(INFILE, $ARGV[0])) { print "Datei eingelesen...\n" } else { print "Fehler: Die angegebene Datei '$ARGV[0]' existiert nicht.\n"; exit; } } else { print "Fehler: Keine Postbank-Datei angegeben.\n"; print "Syntax: pb2qif \n"; exit; } # Vorspulen bis zum Beginn der Transaktionen: while () { if (/Wertstellung/) {last;} } open(OUTFILE, ">$outfilename"); print OUTFILE "!Type:Bank\n"; # Hier werden die Transaktionen umformatiert: while () { @felder = split(/\t/, $_); @datum = split(/\./, $felder[0]); if($#datum == 2) { print OUTFILE "D$datum[1]/$datum[0]/$datum[2]\n"; print OUTFILE "N$felder[2]\n"; # Transfer-Art, z.B. Gutschrift, Ueberw... print OUTFILE "P$felder[4]\n"; # Empfaenger. $felder[6] =~ s/\./x/g; # . und , in Betrag von deutsch nach US Format. $felder[6] =~ s/,/\./g; $felder[6] =~ s/x/,/g; print OUTFILE "T$felder[6]\n"; print OUTFILE "C*\n"; print OUTFILE "\^\n"; } } close(INFILE); close(OUTFILE); print "...und konvertiert in '$outfilename'.\n";