Converter VB -gt; Delphi Não Funciona
14/03/2006
0
Bem amigos tenho este código em Vb e gostaria de transformar para delphi até qu eu tentei porem nao fucionou, trata-se de um código para dígito verificador, sera que alguem ajuda ae
[b:0d5be36a2e]Código que eu transformei[/b:0d5be36a2e]
Obrigado amigos...
Visual Basic Private Function Confere_DV(ByVal pCodigo As String) As Boolean Dim bDv As Integer, _ tDig As String, _ bFator As Byte, _ bIdx As Integer, _ iTot As Integer bFator = 1 iTot = 0 For bIdx = 15 To 1 Step -1 bFator = (bFator + 1) tDig = Mid$(pCodigo, bIdx, 1) iTot = iTot + (Val(tDig) * bFator) If bFator >= 9 Then bFator = 1 Next bDv = Right(CStr((iTot * 10) Mod 11), 1) If bDv <> Val(Mid$(pCodigo, 16, 1)) Then Confere_DV = False Else Confere_DV = True End If End Function
[b:0d5be36a2e]Código que eu transformei[/b:0d5be36a2e]
Function Confere_DV(pCodigo: String): Boolean; var tDig: String; bIdx, iTot, bDv, bFator: Integer; begin bFator := 1; iTot := 0; For bIdx := 1 To 15 do begin Inc(bFator); tDig := Copy(pCodigo, bIdx, 1); iTot := iTot + (StrToInt(tDig) * bFator); If bFator >= 9 Then bFator := 1; end; bDv := StrToInt(RightStr((IntToStr((iTot * 10) mod 11)), 1)); If bDv <> StrToInt(Copy(pCodigo, 16, 1)) Then Result:= False Else Result:= True;
Obrigado amigos...
Sremulador
Curtir tópico
+ 0
Responder
Posts
14/03/2006
Massuda
O loop original eo loop que você fez estão diferentes...
For bIdx = 15 To 1 Step -1
...
For bIdx := 1 To 15 do begin
...o original era do fim para o começo enquanto o seu está do contrário; experimente mudar para...For bIdx := 15 DownTo 1 do begin
Responder
Clique aqui para fazer login e interagir na Comunidade :)