Forum - Beitrag anzeigen

CF-Advanced - Prüfziferberechnung Schweizer Einzahlungsscheine (ESR) - Knacknuss

Icon Pfeil Startseite Icon Pfeil Kategorie Icon Pfeil Suche

Icon Forum Beitrag vom 09.05.2011 02:28 (1819 Aufrufe)
Name: neom
Titel: Prüfziferberechnung Schweizer Einzahlungsscheine (ESR) - Knacknuss
Inhalt: Hallo zusammen

versuche eine Prufnummer zu erzeugen nach dem "Modulo 10 rekursiv" Prinzip.
(http://www.postfinance.ch/content/dam/pf/de/doc/consult/manual/dldata/efin_recdescr_man_de.pdf <-Seite 5)
Mit verschiedenen Anleitungen bin ich jetzt bei folgenden ergebnis gelandet:

<cfscript>
function calcModulo10r(iNum) {
aModTab = listToArray("0,9,4,6,8,2,7,1,3,5");
iUebertrag = 0;
for(i=0; i lt len(iNum); i++) {
iUebertrag = aModTab[ ((iUebertrag + iNum.charAt(i)) % 10)+1];
}
return (10 - iUebertrag) % 10;
}
sOrderCode1 = calcModulo10r('0000025810');
sOrderCode2 = calcModulo10r('25852200000000000000000000');
writeOutput(sOrderCode1 & '<br>' & sOrderCode2 );
</cfscript>

Ausgabe jetzt:
8
2

Ausgabe soll:
9
9

CF rechnet ja leider immer ab 1. Die Java Funktion "charAt" rechnet ab 0 darum der +1 Fix bei der Array Anfrage. Sieht jemand meinen Fehler ?

Besten Dank für eure Hilfe

Antworten
Icon Forum Prüfziferberechnung Schweizer Einzahlungsscheine (ESR) - Knacknuss (neom, 09.05.2011 02:28)
   Icon Forum Re: Prüfziferberechnung Schweizer Einzahlungsscheine (ESR) - Knacknuss (neom, 09.05.2011 11:48)

Bitte melden Sie sich kostenlos an, um eine Antwort auf diesen Beitrag zu erstellen.


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen