Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Алгоритм расчета контрольного ключа счета (банковского) / 7 сообщений из 7, страница 1 из 1
12.03.2004, 10:10
    #32439222
vgross
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
Господа!
А нет ли у кого готового Алгоритма расчета контрольного ключа счета (банковского)?
Поделитесь пожалуйста.
...
Рейтинг: 0 / 0
12.03.2004, 10:27
    #32439255
Юрий Р.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
А этот алгоритм для России и Украины разный ?
...
Рейтинг: 0 / 0
12.03.2004, 10:30
    #32439265
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
Посмотри здесь (для Российских счетов)

http://www.foxclub.ru/sol/index.php?act=view&id=236
...
Рейтинг: 0 / 0
12.03.2004, 11:14
    #32439401
Юрий Р.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
А вот это для Украины, если устроит. (DOS вариант)

FUNCTION ScetKey

PARAMETERS char_scet, curr_mfo

PRIVATE check_num, long_scet, ind_for, sum1, sum2, sum3, ;
check_key, ret_scet, i

check_num = "1371337137137137137"
curr_mfo = Left(curr_mfo, 5)
char_scet = Left(char_scet, 4) + "0" + ;
Right(char_scet, Len(char_scet) - 4)
long_scet = curr_mfo + char_scet
sum1 = 0

FOR ind_for = 1 to Len(long_scet)
sum1 = sum1 + ;
Val(Right(Str(Val(SubStr(long_scet, ind_for, 1)) * ;
Val(SubStr(check_num, ind_for, 1))), 1))
ENDFOR

sum2 = sum1 + Len(char_scet)
sum3 = Val(Right(Str(sum2), 1)) * 7
check_key = Right(Str(sum3), 1)
ret_scet = Stuff(char_scet, 5, 1, check_key)

RETURN ret_scet
...
Рейтинг: 0 / 0
12.03.2004, 12:53
    #32439741
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
Проверка контрольного разряда для лицевого счета для Украины
*/* ------ 15.12.97 09:37 ORLOV 1997 --------
* Name: TESTLS
* Params: cMfo, cLs
* Return: Variable
* Example: DO TESTLS WITH cMfo, cLs
* öπ¡¬µ¿∩ »α«óÑન ß««ΓóÑΓßΓó¿∩ ¼Σ« ¿ ½/ßτÑΓá »« ¡«ó«¼π »½á¡π ßτÑΓ«ó
* ..........................................................................
*/
*FUNCTION TESTLS(cMfo, cLs)
PARAMETERS cMfo, cLs


DIMENSION arr(19)
STORE '1' TO arr(1)
STORE '3' TO arr(2)
STORE '7' TO arr(3)
STORE '1' TO arr(4)
STORE '3' TO arr(5)
STORE '3' TO arr(6)
STORE '7' TO arr(7)
STORE '1' TO arr(8)
STORE '3' TO arr(9)
STORE '7' TO arr(10)
STORE '1' TO arr(11)
STORE '3' TO arr(12)
STORE '7' TO arr(13)
STORE '1' TO arr(14)
STORE '3' TO arr(15)
STORE '7' TO arr(16)
STORE '1' TO arr(17)
STORE '3' TO arr(18)
STORE '7' TO arr(19)

pRIVATE cStr="", tStr
SumArr=0
PRIVATE Rzr=0
PRIVATE i=0

tStr=padr(alltrim(str(cLs,15, 0)),14,"0")
Rzr=val(substr(tStr,5,1))

cStr=substr(str(cMfo,6),1,5)


cStr=substr(str(cMfo,6),1,5)+tStr

for i=1 to 19 &&len(Arr)
if(i<>10)

Arr(i)=val(Arr(i))*val(substr(cStr,i,1))

IF LEN(ALLTRIM(STR(Arr(i),2,0)))>1
Arr(i)=substr(alltrim(STR(Arr(i))),2, 1)
ELSE
Arr(i)=alltrim(STR(Arr(i)))
ENDIF
else
Arr(i)="0"
endif

SumArr=SumArr+val(Arr )

NEXT


SumArr=SumArr+len(alltrim(str(cLs,15, 0)))

*********************
do case
case LEN(ALLTRIM(STR(SumArr,3,0)))>2

Arr(1)=7*val(substr(ALLTRIM(STR(SumArr,3,0)),3,1))

case LEN(ALLTRIM(STR(SumArr,2,0)))>1

Arr(1)=7*val(substr(ALLTRIM(STR(SumArr,2,0)),2,1))
otherwise
Arr(1)=7*VAL(alltrim(STR(SumArr)))
ENDcase
***********************

if LEN(ALLTRIM(STR(Arr[1],2,0))) > 1

Arr[1]=val(substr(ALLTRIM(STR(Arr[1],2,0)),2,1))
ELSE

Arr[1]=VAL(substr(ALLTRIM(STR(Arr[1],2,0)),1,1))

ENDIF

****************

Arr[1]=VAL(substr(ALLTRIM(STR(Arr[1],2,0)),1,1))

IF Rzr==Arr[1]


IF Rzr==Arr[1]
wait window 'разряд верен'
ELSE

wait window 'разряд НЕверен'

_err=1


ENDIF
...
Рейтинг: 0 / 0
28.03.2004, 07:42
    #32459735
Y307
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
'==== VB6 ====
Function CheckBank(AccountNo As String, MFO As String) As Boolean
Dim mask As String
Dim buf As String
Dim kl, i, ln
'============================
mask = "1371337137137137137"
kl = 0
buf = Left(Trim(MFO), 5) & Trim(AccountNo)
ln = Len(buf)
For i = 1 To ln
If i <> 10 Then
kl = kl + (Val(Mid(buf, i, 1)) * Val(Mid(mask, i, 1))) Mod 10
End If
Next i
kl = (((kl + ln - 5) Mod 10) * 7) Mod 10
CheckBank = (kl = Val(Mid(buf, 10, 1)))
End Function

!!!
Может быть у кого-то есть алгоритм расчета контрольного ключа МФО(для Украины)?
...
Рейтинг: 0 / 0
28.03.2004, 09:31
    #32459748
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Алгоритм расчета контрольного ключа счета (банковского)
у меня есть алгоритм для расчета МФО для Украины.. но... на неделю я уезжаю.. так что если напомните мне на мыло - помещу егосдесь после 4-04-2004
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Алгоритм расчета контрольного ключа счета (банковского) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]