CONVERTER ROTINA DE JAVA PARA VB

OLAFEKORKAN 09/10/2009 21:56:44
#324960
Ölá galera!
Boa noite!

Tem alguém aí que entenda de JAVA?
Preciso converter essa função em JAVA para o VB6

[txt-color=#045FB4]segue abaixo a função em JAVA
****************************************
[/txt-color]

public static int calculaDV(String c) {
/* o parametro c é o código sem pontos e sem o
digito verificador (ex: [Ô]010101001[Ô]) */

char[] codigo = c.toCharArray();

int y = 9;
int soma = 0;

for (int i = 1; i < codigo.length; i++) {
soma += (codigo[i] - [ô]0[ô]) * y--;
}
int resto = soma % 11;
return (resto > 1)? (11 - resto) : 0;
}
OLAFEKORKAN 11/10/2009 12:21:24
#325020
E aí tecla?
BLZ?

Seguinte,
Essa função não funcionou não:
O resultado sempre dá ZERO (0). Ou sejna, não está calculando o dídigito verificador não?

Seguem alguns múmero válidos com seus respectivos ([txt-color=#0404B4]DV[/txt-color])

**CÓDIGO** **DV**
010102007 4
020202017 7
030103016 2
040907014 9
050103012 3
060107001 1
070103008 9
080301011 7


Se alguém aí puder me ajudar eu agradeço!
Valeu galera!
OLAFEKORKAN 11/10/2009 12:50:17
#325022
E aí Tecla?

Seguinte:
Num funcionana não!

Só tá dando certo com o primeiro código da lista que passei acima:

**CÓDIGO** **DV**
010102007 4

Nenhum dos outros da dando o DV certo.
OLAFEKORKAN 11/10/2009 13:11:57
#325030
NADADICA DE NADA!
CONTIUNUA ERRADO!!

Estou tentando também aki desatar este nó!!
TECLA 11/10/2009 13:51:33
#325033
Resposta escolhida
Excluí todos os outros posts para não confundi-lo.
Testei a rotina abaixo com todos os números que postou.

  • Veja a demo


  • Veja o código
    Private Function calculaDV(c As String) As Integer
    Dim y As Integer, soma As Integer, i As Integer
    Dim resto As Integer, ret As Integer

    y = 10
    soma = 0

    For i = 1 To Len(c)
    soma = soma + (CInt(Mid(c, i, 1)) * y)
    y = y - 1
    Next

    resto = soma Mod 11
    ret = IIf(resto > 1, Abs(11 - resto), 0)
    calculaDV = ret
    End Function


    Private Sub Command1_Click()
    Dim calc As Integer
    calc = calculaDV(Text1)
    MsgBox calc, ,
  • [Ô]Resultado[Ô]
    End Sub
    OLAFEKORKAN 11/10/2009 20:42:27
    #325062
    Valeu brother!!

    Ficou blz blz! Deus lhe abençeo!

    será que vc conseguiria coonverter a Clipper e PASCAL que postei?
    Tópico encerrado , respostas não são mais permitidas