########################################################################## # Versionen: # # 23.08.08 Version 2.92 # # Diese Version ist das zweite Beta-Release für die # # Version 3.0. Sie enthält die Korrekturen der Version # # 2.7 sowie noch eine Reihe kleinerer Bugfixes etc. # # Die folgenden Änderungen finden sich nur in 2.92: # # # # - Es gibt ein zweitesa Demo-Programm konto_check_mini, # # das die zu prüfenden Konto/BLZ-Kombinationen von der # # Kommandozeile liest; außerdem werden noch Tests von # # IBAN und Strukturiertem Verwendungszweck unterstützt.# # # # - Die main-Routine im Beispielsprogramm wurde etwas # # erweitert; falls keine Datei angegeben wird, geht # # das Programm in einen interaktiven Modus, in dem # # interaktiv diverse Tests gemacht werden können sowie # # die LUT-Datei neu geladen werden kann; außerdem kann # # auch das benutzte Systemdatum gesetzt werden, um # # einen Datumswechsel zu simulieren. Hilfe gibt es in # # dem Batchmodus mit dem Kommando -h. # # # # - Für die LUT-Datei können jetzt mehrere Suchpfade # # angegeben werden, die nacheinander durchsucht werden;# # außerdem sind mehrere Default-Dateinamen möglich. # # Falls bei der Initialisierung kein Dateiname für die # # LUT-Datei angegeben wird, werden in allen Default- # # Verzeichnissen die Defaultnamen probiert; falls eine # # passende Datei gefunden wird, wird diese genommen. # # Die Default-Namen und -Pfade können in konto_check.h # # definiert werden (es sind dieMakros DEFAULT_LUT_NAME # # und DEFAULT_LUT_PATH). # # # # - Die Funktion lut_init() ist jetzt nicht mehr eine # # Kopie der Funktion kto_check_init(), sondern eine # # eigene Funktion mit vereinfachtem Aufrufinterface, # # die i.A. eine inkrementelle Initialisierung macht # # (näheres in konto_check.c). # # # # - Es gibt eine neue Funktion get_lut_id(), die die # # Datei-ID einer LUT-Datei liefert. Diese Funktion # # wird vor allem für inkrementelle Initialisierung # # benötigt. # # # # - Es gibt eine neue Funktion kto_check_retval2utf8(), # # die das Ergebnis einer Rückgabe in einen UTF-8 # # kodierten String umwandelt. # # # # - In einigen Prüfziffermethoden der Debugversion wurde # # retvals->pz nicht gesetzt; korrigiert. # # # # - Einige Beschreibungen der Prüfziffermethoden wurden # # leicht angepasst; alte Versionsbeschreibungen # # gelöscht. # # # # - Die Funktion rebuild_blzfile() funktioniert jetzt # # (wieder); sie dient als Härtetest für die LUT2 # # Routinen, da eine BLZ-Datei der Bundesbank aus einer # # LUT-Datei wiederhergestellt wird. # # # # - Die Testroutinen der Perl-Version wurden komplett # # neu geschrieben, um aus den automatisierten Tests # # der CPAN-Tester bessere Rückschlüsse auf Programm- # # fehler zu erhalten. # # # # - Die Perl-Version enthält eine abgespeckte Version # # der ZLIB, damit bei Fehlen des zlib-development # # Pakets die Kompilierung nicht mit einem Fehler # # abbricht (das Vorhandensein wird in Makefile.PL # # überprüft). # # # # - Die Windows-DLL macht in Verbindung mit PHP oder # # Access öfters Probleme; die Ursache dafür wurde noch # # nicht gefunden, wird aber bald angegangen. # # # # 23.08.08 Version 2.7 # # Diese Version ist wieder ein Zwischenrelease zur # # Version 3.0, da zum nächsten Termin am 8.9.2008 zwei # # neue Prüfziffermethoden eingeführt wurden. Die # # zweite Betaversion zu 3.0 (2.92) wird gleichzeitig # # mit dieser Version freigegeben. # # # # - Methoden D0 und D1 implementiert # # # # - in Methode 53 und B6 wurde eine Rückgabe vergessen; # # dadurch konnten unter Umständen Konten fälschlich # # als richtig klassifiziert werden. # # # # - Methode 57 wurde zum 4.12.2006 ziemlig stark # # geändert; die Änderungen sind jetzt berücksichtigt. # # # # - Die PHP-Version wurde für die Version 2.7 entfernt, # # da die Version aufgrund mangelnder Threadfestigkeit # # und fehlender Initialisierungsfunktionen u.a. für # # PHP nicht geeignet ist. # # # # - Die Windows-DLL wird jetzt sowohl in cdecl als auch # # mit stdcall kompiliert; dann kann jeder die Version # # benutzen, die für ihn passend ist. # # # # 23.04.08 Version 2.91 # # Dies ist die erste Beta-Version für das 3.0 Release # # von konto_check. Die Dateien 0_history.txt und # # 00liesmich.txt sind noch weitgehend von 2.6; es gibt # # sehr viele Änderungen in den Funktionen und im API. # # Das alte API kann jedoch auch weiterhin benutzt # # werden; es wird intern auf die neuen Funktionen # # abgebildet. # # # # 10.04.08 Version 2.6 # # - Methoden C8 und C9 implementiert # # # # 16.02.08 Version 2.5 # # Diese Version ist ein Übergangsrelease, da in der # # Version 3.0 sehr viel Code neu geschrieben wurde; # # die Version 2.5 enthält noch den alten Code mit # # einigen kleineren Bugfixes und kann als stabile # # Variante angesehen werden (3.0 ist noch etwas # # experimentell, und macht unter Windows in Zusammen- # # hang mit VB ziemlig Probleme; die C- und Perlversion # # scheinen dagegen zu laufen). # # # # - Methode 50b wird nur noch angewendet, falls die # # Kontonummer nicht mehr als sieben Stellen hat; nur # # in dem Fall scheint es möglich zu sein, daß ein # # Unterkonto weggelassen wurde. # # # # - Bei Methode 74b wird die Prüfziffer (aus der 10. # # Stelle) modulo 5 genommen, da bei mindestens einer # # Bank Prüfziffern für 74b >5 vorkommen. # # # # - Falls in der Bundesbankdatei für eine Bank mehrere # # Prüfverfahren angegeben sind, wird das der Haupt- # # stelle benutzt. Die alte Version nutzte als Prüf- # # zifferverfahren dasjenige, das in der Bankdatei als # # letztes aufgeführt wurde; dieses ist oft von einer # # Nebenstelle und ist somit i.A. nicht korrekt. # # # # 13.11.07 Version 2.4 # # Diese Version ist wieder ein Zwischenrelease, um die # # neu definierte Prüfmethode C7 (gültig ab Dezember) # # in die Library einzufügen; außerdem wurde ein Fehler # # in der Methode B9 beseitigt. # # # # - Methoden C7 implementiert # # # # - In Methode B9 war für den Test auf 3 führende Nullen # # irrtümlich if(kto[3]!='0') (statt if(kto[2]!='0') ) # # geschrieben; korrigiert. # # # # - Die Funktion kto_check_test_vars() gibt den Wert # # der übergebenen Variablen auch in einem String # # zurück, um so auch Anwendungen zu unterstützen, die # # die Ausgabe von stderr unterdrücken (insbesondere # # DLL-Anwendungen unter Windows). # # # # - neue Funktion kto_check_str(), die dieselbe Funktio- # # nalität hat wie kto_check(), jedoch als Rückgabe # # einen kurzen String als Ergebnis liefert (war schon # # in 2.2 eingeführt). # # # # 25.08.07 Version 2.3 (nur für Perl) # # Dies ist ein kleines Bugfix-Release, das ein Problem # # bei "make test" korrigiert; aufgrund einer fehlenden # # Datei schlug der Test fehl, so daß die unermüdlichen # # CPAN Tester zwölfmal FAIL meldeten :-( - in dieser # # Version ist die Datei vorhanden, und es gab wieder # # PASSes. # # # # - neuer Rückgabewert OK_TEST_BLZ_USED für die Methoden # # 52, 53, B6 und C0 (keine Warnung mehr nach stderr, # # falls die Prüfziffermethode direkt angegeben wird, # # ohne BLZ). # # # # 21.08.07 Version 2.2 # # Diese Version ist nur ein Zwischenrelease, um die # # neu definierten Prüfmethoden C5 und C6, die ab # # September gültig werden, in die Library einzufügen. # # Ansonsten wurden nur einige Details geändert. # # # # - Methoden C5 und C6 implementiert # # - einige Aufräumarbeiten, unbenutzte Prototypen für # # das LUT2 Datei-Format entfernt. Die Funktionen # # werden in der nächsten größeren Version eingeführt. # # # # # # 26.05.07 Version 2.1 # # - falls die LUT-Datei nicht gefunden wurde, stürzte # # das Programm beim nächsten Aufruf mit einer access # # violation ab; korrigiert. # # - falls als Dateiname für die LUT-Datei ein Leerstring # # angegeben wird, wird jetzt der Defaultname benutzt. # # - die main() Routine kann jetzt auch im Filterbetrieb # # arbeiten # # - Fehler in Methode 74 beseitigt: wenn die Unterkonto- # # nummer nicht angegeben war, wurde bei einer Prüf- # # ziffer von 10 gleich INVALID_KTO zurückgegeben, statt# # den Test mit Unterkontonummer "00" zu wiederholen. # # - einige Deklarationen mit long ersetzt durch INT4, # # da auf 64 Bit Systemen Probleme entstanden (betrifft # # vor allem die Funktion adler32) # # - erste Perl-Version mittels h2xs generiert # # - einige Anpassungen für Perl, Perl Dokumentation # # - Die Versionszählung ist jetzt nur noch zweistellig # # (vor allem wegen CPAN/PAUSE) # # # # 13.03.07 Version 2.0.5 # # - Methoden C3 und C4 implementiert # # # # 20.11.06 Version 2.0.4 # # - falsche Berechnung in Methode B6 korrigiert # # - falsche Berechnung in Methode 74b korrigiert # # # # 23.08.06 Version 2.0.3 # # - Default für lut_version in generate_lut() auf 2 # # (vorher war kein Defaultwert definiert; bei einem # # ungültigem Wert für lut_version wurde eine fehler- # # hafte blz.lut Datei generiert, jedoch fälschlich OK # # zurückgegeben. # # # # 26.05.06 Version 2.0.2 # # - Methoden C1 und C2 implementiert # # - neues BLZ-Dateiformat (Bundesbank) eingebaut # # - Variable methode_a1_alt gelöscht # # # # 01.12.05 Version 2.0.1 # # - Methoden B9 und C0 implementiert # # # # 06.08.05 Version 2.0 final # # - Makefiles aktualisiert # # - sharable library für Linux/Unix # # - Fehler bei BLZ-Lookup beseitigt (nicht existierende # # BLZ wurde u.U. auf die 1. BLZ-Methode geführt) # # - Methoden B1, B2 und B4 bis B8 neu implementiert # # - Die Datei pruefziffermethoden_0509.pdf wurde noch # # einmal mit den implementierten Methoden verglichen; # # die Methoden 73, 80, 81, 84, 86, 87, 90, 91, A4, A8 # # wurden danach aktualisiert # # - Variable methode_a1_alt herausgenommen (obsolet) # # - set_globals() an mehreren Stellen in # # generate_lut() eingefügt (in der threadfesten # # Version wurde der Rückgabetext nicht in die # # globalen Variablen eingesetzt, da die Funktion # # direkt aufgerufen wird). # # # # 16.12.04 Version 2.0-Beta-2 # # - library threadfest gemacht (optional; noch Testphase)# # - Methoden B0 und B3 neu # # # # 12.10.04 Version 2.0-Beta-1 # # - Methoden B1 und B2 neu # # - Marker für vim folding eingeführt # # # # 16.01.04 Version 2.0-Alpha-2 # # - DLL-Support für Windows eingeführt # # # # 16.01.04 Version 2.0-Alpha-1 # # - Geschwindigkeitsoptimierung aller Methoden sowie der # # Hilfsfunktionen und der main() Routine # # # # - Methode 80: Der Sonderfall mit 99 an der 3. und 4. # # Stelle wird jetzt nur noch für die Variante 2 # # angenommen, nicht global. # # # # - In Methode 76.2 wurde die 1. Stelle auf 1,2,3,5 # # getestet; aufgrund der Verschiebung muß jedoch die # # 3. Stelle getestet werden. # # # # - Die neu definierten Methoden (A6 bis A9) sind jetzt # # iplementiert. # # # # - Methode A1 alt gelöscht # # # # ---------------------------------------------------------------------- # # # # 16.12.04 Version 1.1.5 (aus 2.0-Beta-2) # # - Methoden B0 und B3 neu # # # # 12.10.04 Version 1.1.4 (aus 2.0-Beta-1) # # - Methoden B1 und B2 neu # # - Marker für vim folding eingeführt # # # # 28.01.04 Version 1.1.3 (aus 2.0-Alpha1 hinzugefügt in 1.1.2)= # # - Die Fehler in Methode 76.2 und 80 (s.u., Version # # 2.0-Alpha1 wurden korrigiert # # # # - Die neu definierten Methoden (A6 bis A9) sind jetzt # # iplementiert. # # # # - Methode A1 alt gelöscht # # # # 10.06.03 Version 1.1.2: # # - Fehler in Methode 21 behoben (Quersumme der Faktoren # # fehlte) # # - Methode A1 auf neues Berechnungsverfahren umgestellt # # - (Bei dem Generator für die Testkonten wurde noch # # einige Pattern berichtigt) # # # # 25.03.03 Version 1.1.1: # # - zusätzlicher Test in read_lut(), ob die LUT-Datei # # gelesen wurde. # # - eine Reihe Untermethoden wurde anders numeriert # # (dies betrifft nur die Debug-Version und ist nur für # # Tests relevant; es hat keine Auswirkung auf das # # normale Programm). # # - neue Variable pz_str (char[4]), in der die benutzte # # Prüfmethode und Untermethode zurückgegeben wird. # # Falls die Untermethode unerwünscht ist, kann sie mit # # pz_str[2]=0 gelöscht werden. # # Die Methode entspricht der Notation der Deutschen # # Bundesbank (00 bis A5), für die Untermethoden werden # # kleine Buchstaben benutzt (a, b, c...). # # # # 13.03.03 Version 1.1.0: # # Bugfixes: # # - Methode 95: Ausnahmekonten 0001999999 etc. gelten als# # richtig (ohne Test; Im Vergleich wurde auf kleiner # # getestet statt auf kleiner/gleich) # # # # Weitere Änderungen: # # - Die Konstanten MAYBE_OK/MAYBE_FALSE werden nicht # # mehr benutzt und wurden entfernt (dadurch ändern # # sich die numerischen Rückgabewerte, nicht jedoch die # # symbolischen). # # - Datei konto_check.h geschrieben mit public interface # # und möglichen Rückgabewerten. # # - die Methode A1 wird zum 9.6.2003 geändert; das neue # # Berechnungsverfahren kann über eine globale Variable # # ausgewählt werden. # # - Die Methoden A2...A5 wurden implementiert (neue # # Verfahren) # # - Neues Dateiformat für die Datei blz.lut: sie enthält # # jetzt eine Infozeile, in der das Erzeugungsdatum # # und der Name der ursprünglichen Bankleitzahlendatei # # festgehalten wird. # # - neue Funktionen get_lut_info(): gibt (beim neuen # # Format) die Infozeile der LUT-Datei zurück. # # - neue Funktion get_kto_check_version() zur Versions- # # kontrolle # # - main() Routine in eigene Datei ausgelagert # # - Test von Untermethoden mit dreistelliger "BLZ" # # # # 04.02.03 Version 1.0.3: # # Bugfixes: # # - Fehler in den Methoden 47, 52, 87 und 93 behoben # # - falls der 1. Parameter (BLZ/Prüfziffermethode) nur # # zweistellig angegeben wird, wurde die Funktion # # init_w() nicht aufgerufen, so daß etliche Varibalen # # undefiniert blieben. # # - Lizenzbedingungen: Unterschied der LGPL zur normalen # # GPL im readme und am Programmanfang deutlicher # # gesagt (nicht nur Hinweis auf den Text) # # - neues blz.lut aus der Datei blz0212.exe # # # # 06.11.02 Version 1.0.2: # # main() Routine mit Hilfefunktion, DOS-Exe in das # # pub-Verzeichnis # # # # 10.10.02 Version 1.0.1: # # Einige kleine Fehler wurden noch korrigiert und die # # main() Funktion etwas erweitert. # # # # 13.9.02 Version 1.0: # # Die Berechnungsmethoden sind jetzt komplett; bis # # auf Methode 87 (Pascalcode) wurden alle Methoden mit # # dem Perl-Modul konto.pm mit jeweils ca. 50000... # # 100000 Testkontonummern überprüft (dabei wurden auch # # einige Fehler im Perl-Modul aufgedeckt und # # beseitigt). # # # # Die Funktionen aus blz_utils.c sind jetzt in die # # Hauptdatei integriert; diese kann als stand-alone # # Programm oder als library verwendet werden. # # # # ---------------------------------------------------------------------- # # # # 10.07.02 Version 0.3: # # weitere Berechnungsmethoden; zusätzliche Datei # # blz_utils.c mit diversen Hilfsfunktionen für # # (wesentlich) schnelleren Zugriff auf die Prüfziffer- # # methoden (unter VMS ergab sich für eine Testdatei mit # # knapp 200 Einträgen eine Beschleunigung von 4,9s auf # # 0,13s (mit einem remote filesystem); bei Linux (mit # # lokalem Filesystem und blz.txt/blz.lut im Cache) von # # 175 ms auf 2,4 ms). # # # # Für die Brechnung wird nicht mehr auf die Datei der # # Deutschen Bundesbank zugegriffen, sondern nur noch # # auf eine generierte Binärdatei (blz.lut); sie kann # # mit der Funktion generate_lut() aus der Bundesbank- # # datei erzeugt werden. # # # # 13.06.02 Version 0.2: # # Berechnungsmethoden umgeschrieben, zusätzliche # # Methoden eingefügt. # # # # Jede implementierte Methode wird mit dem Perl-Modul # # Business::konto.pm von Andreas Butzko # # mit mindestens 40000 # # Testkontonummern (oft auch mehr) getestet. # # # # 01.05.02 Version 0.1: # # erste Version (nur privat, wenige Methoden) # # # ##########################################################################