Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index




Am 06.01.2014 15:40, schrieb Robert Großkopf:
Hallo *,

ich habe gerade einmal naiverweise versucht, mit Calc die Prüfziffer für
ein IBAN-Konto zu errechnen. Das scheitert einfach daran, dass ich den
Rest einer 24-stelligen Zahl berechnen muss. Ich habe mich zuerst
gewundert, warum ich nie auf das entsprechende Ergebnis kam - bis ich
dahinter kam, dass aus den letzten Ziffern meiner 24-stelligen Zahl
lauter Nullen wurden.

Wenn ich das Ganze in Basic versuche schmeißt mich Basic mit der Meldung
"Überlauf" raus.

In Basic kannst Du mit LONG INTEGER nur maximal 9 signifikante Stellen
verwenden. Besser nimmst Du also DOUBLE mit 14 signifikanten Stellen.

Das sind zwar immer noch nicht die für eine BBAN notwendigen 24 (d. h.
international sogar max. bis zu 34) Stellen, aber es reicht aus, um die
Prüfsumme nach dem von Christian vorgeschlagenen Schema zu berechnen.

Ich würde allerdings das ganze noch etwas vereinfachen, und die BBAN
nicht einfach in 3 Blöcke a 8 Zahlen teilen, sondern einfach als die
drei Teile gleich die BLZ (10 Stellen), die Kontonummer (8 Stellen[1])
und das Länderkennzeichen samt den 2 Stellen für die Prüfziffer (6
Stellen) benutzen (ungeprüft):

| DIM Bankleitzahl AS DOUBLE       REM 8 Stellen nötig, max. 14 möglich
| DIM Kontonummer AS DOUBLE        REM 10 Stellen
| DIM Laenderkennzeichen AS LONG   REM 6 Stellen, da reicht LONG
| DIM Pruefwert AS INTEGER         REM 2 Stellen
   :
| Pruefwert = ( _
|               ( _
|                 ( _
|                   (Bankleitzahl   MOD 97) * 10^10 _
|                 ) + _
|                 (Kontonummer      MOD 97) * 10^6 _
|               ) + _
|               (Laenderkennzeichen MOD 97) _
|             )

[1] aber das gilt nur für DE; in AT ist die IBAN z. B. nur 20 Stellen
lang, in FR sogar 27; max. zulässig sind bis zu 32 Stellen (siehe
http://de.wikipedia.org/wiki/International_Bank_Account_Number#Zusammensetzung);
wie Du *das* implementieren willst, ist wohl eine ganz andere Frage ... ;-)

Wolfgang
-- 


-- 
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.