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


Am 07.04.2021 um 17:45 schrieb Robert Großkopf:
Hallo *,

ich versuche gerade, für ein Base-Formular die Gültigkeit einer IBAN mit
einem einfachen Makro zu überprüfen.

Mit CDbl(…………) kann ich die 24 Stellen nicht in eine Zahl pressen.

Das ist schon der erste, zweite und dritte Denkfehler gleichzeitig:
Erstens ist die deutsche IBAN nur 22-stellig. Zweitens kann sie im
internationalen Verkehr bis zu 34-stellig sein. Und drittens beinhaltet
sie *auch* *Buchstaben*.

Was zumindest sicher ist, sind die ersten beiden Stellen der Ländercode
(Buchstaben), und die beiden folgenden Stellen eine Prüfziffer. Alles
danach ist länderabhängig, vgl.
https://de.wikipedia.org/wiki/Internationale_Bankkontonummer#IBAN-Struktur_in_verschiedenen_L%C3%A4ndern
.

D.h. du musst überhaupt erst mal den Ländercode auswerten, und abhängig
davon die exakte Länge und Aufteilung ermitteln. das alles muss
eigentlich über Textfunktionen erfolgen, nur so kannst du die einzelnen
Abschnitte sinnvoll extrahieren.

Und dann kommt noch ein vierter Denkfehler dazu: Die größte in OO
verwendbare Variablentype ist IIRC BigInt mit 17 signifikanten Stellen.
Größere Zahlen sind einfach nicht verarbeitbar, zumindest nicht 
als
direkte Zahl. Da musst du sowieso entweder auf irgend welche
Hilfskonstruktionen oder (besser, weil einfacher) auf String ausweichen.
Was aber eigentlich keine große Sache ist, denn mit der IBAN selbst
wirst du kaum rechnen wollen (und selbst die Prüfsumme ist ja keine
/Rechnung/ mit der IBAN selbst, sondern lediglich eine mit den einzelnen
Stellen aka *Ziffern* darin.

Wolfgang
--


-- 
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

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.