Clipper On Line • Ver Tópico - Como seria este código em Clipper, Harbour ou Fivewin?

Como seria este código em Clipper, Harbour ou Fivewin?

Discussão sobre outras linguagens de programação.

Moderador: Moderadores

 

Como seria este código em Clipper, Harbour ou Fivewin?

Mensagempor Ladinilson Sousa » 15 Jul 2020 04:17

Bom dia meus caros,

Tenho este código que queria traduzido em Clipper, harbour ou fivewin pois não sei de qual linguagem se trata.
Esta faltando um valor de uma variável (pNum) que acredito que foi passada como parâmetro.
FUNÇÃO PARA CÁLCULO DE DÍGITO
==============================
Dim Ind As Integer
Dim lVlPro As Integer
Dim lVlTeste As String
Dim lCampo As String
Dim valfator As Integer
Dim lAjuste As Integer

lVlPro = 0
Ind = Len(pNum) + 1
If Ind = 44 Then
  lAjuste = 1
Else
  lAjuste = 0
End If
valfator = 1
lCampo = pNum
lVlTeste = pNum
While Ind > 1
  valfator = valfator + 1
  Ind = Ind - 1
  lVlPro = lVlPro + Mid(lVlTeste, Ind, 1).val * valfator
  If valfator = 9 Then
    valfator = 1
  End If
Wend
lVlPro = lVlPro Mod 11
lVlPro = 11 - lVlPro
If lVlPro = 10 Or lVlPro = 11 Or lVlPro = 0 Then
  lVlPro = lAjuste
End If
Return Str(lVlPro)

Se poderem agradeço a ajuda.

Obrigado

Ladinilson Sousa
Ladinilson Sousa
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 35
Data de registro: 09 Fev 2015 10:41
Cidade/Estado: Belém/PA
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Como seria este código em Clipper, Harbour ou Fivewin?

Mensagempor Claudio Soto » 15 Jul 2020 09:10

Hola,
el código está en Visual Basic, en Harbour sería algo así (no lo probé):

Ind := 0
lVlPro := 0
lVlTeste := ""
lCampo := ""
valfator := 0
lAjuste := 0

pNum = "string con el numero"

lVlPro = 0
Ind = Len(pNum) + 1

If Ind = 44
  lAjuste = 1
Else
  lAjuste = 0
EndIf

valfator = 1
lCampo = pNum
lVlTeste = pNum

do While Ind > 1

  valfator = valfator + 1
  Ind = Ind - 1
 
//  lVlPro = lVlPro + Mid(lVlTeste, Ind, 1).val * valfator
  lVlPro = lVlPro + VAL( SUBSTR( lVlTeste, Ind, 1 ) ) * valfator
 
  If valfator = 9
    valfator = 1
  EndIf
 
EndDo

// lVlPro = lVlPro Mod 11
lVlPro = lVlPro % 11

lVlPro = 11 - lVlPro

If lVlPro = 10 .Or. lVlPro = 11 .Or. lVlPro = 0
  lVlPro = lAjuste
EndIf

Return Str(lVlPro)
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Como seria este código em Clipper, Harbour ou Fivewin?

Mensagempor Ladinilson Sousa » 15 Jul 2020 13:11

Muchas gracias Claudio
Ladinilson Sousa
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 35
Data de registro: 09 Fev 2015 10:41
Cidade/Estado: Belém/PA
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Como seria este código em Clipper, Harbour ou Fivewin?

Mensagempor mauricioportela » 04 Nov 2020 19:32

Passando a flanelinha no codigo que o colega Claudio Soto converteu:

FUNCTION digito( cNumero )
    LOCAL nIndice, nValorProduto, nValorFator, nAjuste, cValorTeste, cCampo
    nValorProduto := 0
    cValorTeste   := ""
    cCampo        := ""
    nIndice := Len( cNumero ) + 1
    IF nIndice == 44
        nAjuste := 1
    ELSE
        nAjuste := 0
    ENDIF

    nValorFator := 1
    cValorTeste := cNumero
    cCampo      := cNumero

    WHILE ( nIndice > 1 )
        nValorFator += 1
        nIndice -= 1
        nValorProduto += (VAL( SUBSTR( cValorTeste, nIndice, 1 ) ) * nValorFator)
        IF ( nValorFator == 9 )
            nValorFator := 1
        ENDIF
    ENDDO
    nValorProduto %= 11
    nValorProduto := 11 - nValorProduto
    IF ( nValorProduto == 10 .OR. nValorProduto == 11 .OR. nValorProduto == 0 )
        nValorProduto := nAjuste
    ENDIF
RETURN ALLTRIM(STR(INT(nValorProduto)))
// RETURN ALLTRIM(STR(nValorProduto))
// RETURN STR(nValorProduto)
Avatar de usuário

mauricioportela
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 29 Jul 2016 04:22
Cidade/Estado: Vitoria da Conquista/Bahia
Curtiu: 4 vezes
Mens.Curtidas: 21 vezes




Retornar para Outras linguagens de programação

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 14 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro