IBAN

Moderator: Enrico Maria Giordano

IBAN

Postby Silvio » Fri Jan 11, 2008 7:48 am

Caro Emg,
Ho letto da qualche parte adesso non ricordo che tu avevi creato una funzione per controllare il codice IBAN. potresti inviarmela
con test minimale per favore ?

Gazie
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: IBAN

Postby Enrico Maria Giordano » Fri Jan 11, 2008 9:08 am

Eccolo:

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL cPae := "IT"
    LOCAL cAbi := "01234"
    LOCAL cCab := "01234"
    LOCAL cCon := "000000012345"
    LOCAL cCin := CIN( cAbi, cCab, cCon )

    ? IBAN( "IT", cCin, cAbi, cCab, cCon )

    RETURN NIL


STATIC FUNCTION IBAN( cPae, cCin, cAbi, cCab, cCon )

    LOCAL cChk := IBANCHK( cPae + "00" + cCin + cAbi + cCab + cCon )

    RETURN cPae + cChk + cCin + cAbi + cCab + cCon


STATIC FUNCTION IBANCHK( cIba )

    LOCAL cGru, cRes := ""

    LOCAL i

    cIba = SUBSTR( cIba, 5 ) + LEFT( cIba, 4 )

    cIba = IBANNUM( cIba )

    FOR i = 1 TO LEN( cIba ) STEP 8
        cGru = cRes + SUBSTR( cIba, i, 8 )
        cRes = LTRIM( STR( INT( VAL( cGru ) % 97 ) ) )
    NEXT

    RETURN STRZERO( ( 98 - VAL( cRes ) ) % 97, 2 )


STATIC FUNCTION IBANNUM( cIba )

    LOCAL cTmp := cIba

    LOCAL cChr

    LOCAL i

    cIba = ""

    FOR i = 1 TO LEN( cTmp )
        cChr = SUBSTR( cTmp, i, 1 )

        IF ISDIGIT( cChr )
            cIba += cChr
        ELSE
            cIba += LTRIM( STR( ASC( cChr ) - ASC( "A" ) + 10 ) )
        ENDIF
    NEXT

    RETURN cIba


STATIC FUNCTION CIN( cAbi, cCab, cCon )

    LOCAL aPari := { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 }
    LOCAL aDisp := { 1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23, 27, 28, 26 }

    LOCAL cNume := "0123456789"
    LOCAL cLett := "ABCDEFGHIJKLMNOPQRSTUVWXYZ-. "

    LOCAL cCod := UPPER( cAbi + cCab + cCon )

    LOCAL nSomma := 0

    LOCAL i, n

    FOR i = 1 TO LEN( cCod )
        n = AT( SUBSTR( cCod, i, 1 ), cNume )

        IF n = 0
            n = AT( SUBSTR( cCod, i, 1 ), cLett )
        ENDIF

        IF i % 2 = 0
            nSomma += aPari[ n ]
        ELSE
            nSomma += aDisp[ n ]
        ENDIF
    NEXT

    RETURN SUBSTR( cLett, ( nSomma + 1 ) % 26, 1 )


EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Fri Jan 11, 2008 12:07 pm

Grazie Emg.
L'ho provato ma mi restituisce una stringa a video.
la funzione serve per creare un iban oppure per controllarlo?
per la seconda opzione la funzione non dovrebbe restituire un valore .t. se il codice è giusto?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Fri Jan 11, 2008 4:45 pm

Serve per generare il codice IBAN ma non ti dovrebbe essere difficile controllarlo prendendo spunto da quello.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Fri Jan 11, 2008 11:51 pm

sai perchè mi serve a scuola per controllare tutti gli iban dei docenti e personale ben 360 persone , se mi dai un aiutino dato che hai fatto quella funzione sei un amicone !!!!
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Sat Jan 12, 2008 1:01 pm

Eccola:

Code: Select all  Expand view
FUNCTION ISIBAN( cIba )

    LOCAL cChk := SUBSTR( cIba, 3, 2 )

    cIba = LEFT( cIba, 2 ) + "00" + SUBSTR( cIba, 5 )

    RETURN cChk = IBANCHK( cIba )


Comunque cerca anche di darti da fare un pochino. Non puoi pretendere sempre la pappa pronta.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Sat Jan 12, 2008 3:13 pm

Scusa c'hai ragione te !!
eè solo che è un periodo no questo!!!
comunque grazie tantissimissimo!!!
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Silvio » Sat Jan 12, 2008 3:14 pm

scusa ...
io avrei per caso in un archivio i codici abi e cab delle banche
indolore potrei andarli a cercare li che dici ?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy


Postby Silvio » Sat Jan 12, 2008 11:58 pm

ehi !
ma non si puo' mai scherzare con te ?
Abbi fiducia !
8) 8) 8)




P.S.
:lol: :lol: :lol:
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Sun Jan 13, 2008 11:40 am

Ah, era uno scherzo? Certo che si può scherzare, anzi si deve scherzare, ma gli scherzi dovrebbero essere anche comprensibili. :-)

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Silvio » Mon Jan 14, 2008 12:33 am

scusa ma sei sicuro che io non sia capace di estrappolare un campo da un archivio ... se ce lo avessi quel dannato archivio ...tre anni fa lo avuto e adesso non ce l'ho..per caso ce l'hai un archivoo banche con codici abi e cab d'italia : telo scritto anche sul nntp...
mi manca anche l'archivio dei comuni d'italia aggiornato ma dove li trovo ?
Best Regards, Saludos

Falconi Silvio
User avatar
Silvio
 
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Postby Enrico Maria Giordano » Mon Jan 14, 2008 9:50 am

Ma non avevi detto che era uno scherzo? Scusa, rileggi quello che hai scritto:

io avrei per caso in un archivio i codici abi e cab delle banche
indolore potrei andarli a cercare li che dici ?


Secondo te si capisce qualcosa? In ogni caso no, non ho l'archivio che cerchi.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia


Return to All products support

Who is online

Users browsing this forum: No registered users and 10 guests