IBAN - Nummer berechnen

Ich muss mit Xojo ein Programm erstellen, dass aus einer Bankleitzahl und Kontonummer eine valide IBAN-Nummer erstellt. Gibt es hierzu schon etwas, das mir etwas Arbeit erspart?

Das sollte nicht schwer sein.
http://www.ibancalculator.com/calculation.html

Allerdings komme ich bei meinen Versuchen nicht auf das richtige Ergebnis. Mir scheint es, das es an der lnge des Zahlenwertes hngt. Wie muss ich eine Zahl mit 24 Stellen in Xojo definieren um diese dividieren zu knnen?

Hallo,

hier eine bessere und vor allem fehlerfreie Anleitung. Das was Joel dir da gegeben hat ist leider Murks:

http://www.six-interbank-clearing.com/dam/downloads/de/standardization/iban/calculator/iban_check_digit_algorithm.pdf

Klar dass Du kein Ergebnis bekommst, da Du mit einer Division einer solchen Zahl alle verfügbaren Datentypen - selbst Int64 - sprengst. Du musst die Ganzzahldivision in Teilschritten vornehmen. Das Ergebnis ist das gleiche. Steht aber auch alles in der PDF.

Grüße!

Guck Dir mal folgendes Plugin an

fp Plugin

Damit lassen sich auch die nötigen Divisionen durchführen.

siehe auch diesen thread: converting a string to a number

Ich habe für meinen Verein ein kleines Programm geschrieben, welches eine CSV Liste in valides SEPA XML konvertiert. Als Teil davon gibt es einen IBAN Checker, der einen vorgegeben IBAN auf Gültigkeit prüft.

Vielecht kannst Du da was klauen (ist bei mir Teil einer checkfunktion, daher so alleine nicht lauffähig)

   //fldiban enthält den zu prüfenden IBAN IBAN z.B. DE02200505500001234321
   dim ibancheck as string                           //der umgestellte IBAN (ersten 4 Stellen ans Ende)
    dim ibanctr as string                               //der umgestellte IBAN und alle Buchstaben in Zahlen gewandelt
    dim singlechr as String                           //Helper
    ibancheck = mid(fldiban,5)+mid(fldiban,1,4)        //IBAN umstellen
    for idx as integer =1 to len(ibancheck)                 //Buchstaben ersetzen
      singlechr = mid(ibancheck,idx,1)
      select case singlechr
      case "1", "2", "3","4","5","6","7","8","9","0"
        Singlechr = singlechr
      case "A"
        singlechr = "10"
      case "B"
        singlechr = "11"
      case "C"
        singlechr = "12"
      case "D"
        singlechr = "13"
      case "E"
        singlechr = "14"
      case "F"
        singlechr = "15"
      case "G"
        singlechr = "16"
      case "H"
        singlechr = "17"
      case "I"
        singlechr = "18"
      case "J"
        singlechr = "19"
      case "K"
        singlechr = "20"
      case "L"
        singlechr = "21"
      case "M"
        singlechr = "22"
      case "N"
        singlechr = "23"
      case "O"
        singlechr = "24"
      case "P"
        singlechr = "25"
      case "Q"
        singlechr = "26"
      case "R"
        singlechr = "27"
      case "S"
        singlechr = "28"
      case "T"
        singlechr = "29"
      case "U"
        singlechr = "30"
      case "V"
        singlechr = "31"
      case "W"
        singlechr = "32"
      case "X"
        singlechr = "33"
      case "Y"
        singlechr = "34"
      case "Z"
        singlechr = "35"
      end select
      ibanctr=ibanctr+singlechr
    next
    
    
    dim testnbr as BigInteger      //BIGINTEger aus FP Plugin um die grosse Zahl hantieren zu können
    dim controlnbr as integer     // Ergebnis der Modulo Berechnung
    testnbr = new BigInteger(ibanctr)
    controlnbr =fpEquateINT32_BI( testnbr mod 97)
    
    if controlnbr <> 1 then      // Errortext Generierung für Log
      errortxt = errortxt + delimiter+"IBAN " +fldiban+ " ist nicht korrekt"
      delimiter = ", "
    end if
  end if
  

Wie gesagt, damit das funktioniert, muss das fp plugin installiert sein.

Aus Wikipedia:

Hier noch ein paar links für die Berechnungsgrundlagen:

IBAN.de

Danke Tomas, die Anleitung ist super. Damit hat’s sofort funktioniert.

@Stefan: interessantes Plugin. bin aber froh das ich es auch ohne lösen konnte. Evtl. brauche ich es aber später einmal.