Fórum DataFlex To delphi... #347496

17/10/2007

0

Alguem saberia converter este código em dataflex para delphi...

MOVE V_PREST TO VI_PREST
MOVE 0 TO I?_TOTAL
MOVE 0 TO I?_I 
MOVE 0 TO I?_RESTO

//CALCULO DO DIGITO

IF VI_UNIMED NE 0 BEGIN
   FOR I?_I FROM 2 TO 8
       MOD 10 FROM VI_UNIMED TO I?_RESTO
       MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
       MOVE (VI_UNIMED / 10) TO VI_UNIMED
   LOOP
END

FOR I?_I FROM 2 TO 9
    MOD 10 FROM VI_PREST TO I?_RESTO
    MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
    MOVE (VI_PREST / 10) TO VI_PREST
LOOP
// ..........................................................................

MOD 11 FROM (I?_TOTAL * 10)  TO I?_RESTO
RIGHT I?_RESTO TO S?_DIGITO 1



Sremulador

Sremulador

Responder

Posts

18/10/2007

Paulo

Não manjo nada de dataflex como muita gente por aqui, o que torna a sua resposta mais difícil. Agora se você dizer o que você realmente quer, passando informações chaves, fica mais fácil você ter a resposta.


Responder

Gostei + 0

18/10/2007

Sremulador

trata-se de uma verificação de digito verificador...


Responder

Gostei + 0

18/10/2007

Toninhonunes

Alguem saberia converter este código em dataflex para delphi...
MOVE V_PREST TO VI_PREST
MOVE 0 TO I?_TOTAL
MOVE 0 TO I?_I 
MOVE 0 TO I?_RESTO

//CALCULO DO DIGITO

IF VI_UNIMED NE 0 BEGIN
   FOR I?_I FROM 2 TO 8
       MOD 10 FROM VI_UNIMED TO I?_RESTO
       MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
       MOVE (VI_UNIMED / 10) TO VI_UNIMED
   LOOP
END

FOR I?_I FROM 2 TO 9
    MOD 10 FROM VI_PREST TO I?_RESTO
    MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
    MOVE (VI_PREST / 10) TO VI_PREST
LOOP
// ..........................................................................

MOD 11 FROM (I?_TOTAL * 10)  TO I?_RESTO
RIGHT I?_RESTO TO S?_DIGITO 1



Responder

Gostei + 0

18/10/2007

Sremulador

???


Responder

Gostei + 0

18/10/2007

Toninhonunes

[quote:0378d64f0e=´sremulador´]Alguem saberia converter este código em dataflex para delphi...
MOVE V_PREST TO VI_PREST
MOVE 0 TO I?_TOTAL
MOVE 0 TO I?_I 
MOVE 0 TO I?_RESTO

//CALCULO DO DIGITO

IF VI_UNIMED NE 0 BEGIN
   FOR I?_I FROM 2 TO 8
       MOD 10 FROM VI_UNIMED TO I?_RESTO
       MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
       MOVE (VI_UNIMED / 10) TO VI_UNIMED
   LOOP
END

FOR I?_I FROM 2 TO 9
    MOD 10 FROM VI_PREST TO I?_RESTO
    MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
    MOVE (VI_PREST / 10) TO VI_PREST
LOOP
// ..........................................................................

MOD 11 FROM (I?_TOTAL * 10)  TO I?_RESTO
RIGHT I?_RESTO TO S?_DIGITO 1
[/quote:0378d64f0e]

Esse sistema de fórum da devmédia é péssimo, depois de ter digitado, perdi os dados, infelismente não poderei responder mais, esse negócio de proteção só faz atrapalhar, paciência.


Responder

Gostei + 0

18/10/2007

Sremulador

[quote:66fcff2def=´toninhonunes´][quote:66fcff2def=´sremulador´]Alguem saberia converter este código em dataflex para delphi...
MOVE V_PREST TO VI_PREST
MOVE 0 TO I?_TOTAL
MOVE 0 TO I?_I 
MOVE 0 TO I?_RESTO

//CALCULO DO DIGITO

IF VI_UNIMED NE 0 BEGIN
   FOR I?_I FROM 2 TO 8
       MOD 10 FROM VI_UNIMED TO I?_RESTO
       MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
       MOVE (VI_UNIMED / 10) TO VI_UNIMED
   LOOP
END

FOR I?_I FROM 2 TO 9
    MOD 10 FROM VI_PREST TO I?_RESTO
    MOVE (I?_TOTAL + (I?_I * I?_RESTO))  TO I?_TOTAL
    MOVE (VI_PREST / 10) TO VI_PREST
LOOP
// ..........................................................................

MOD 11 FROM (I?_TOTAL * 10)  TO I?_RESTO
RIGHT I?_RESTO TO S?_DIGITO 1
[/quote:66fcff2def]

Esse sistema de fórum da devmédia é péssimo, depois de ter digitado, perdi os dados, infelismente não poderei responder mais, esse negócio de proteção só faz atrapalhar, paciência.[/quote:66fcff2def]

ptz :cry: , fico no aguardo amigo, obrigado


Responder

Gostei + 0

19/10/2007

Marcoslondrina

Faz muito tempo que não mexo com dataflex, mas o código deve ser esse:


VI_PREST := V_PREST;
I?_TOTAL := 0;
I?_I := 0;
I?_RESTO := 0;

//CALCULO DO DIGITO

IF VI_UNIMED <> 0 THEN BEGIN
FOR I?_I := 2 TO 8 DO BEGIN
I?_RESTO := VI_UNIMED MOD 10;
I?_TOTAL := (I?_TOTAL + (I?_I * I?_RESTO));
VI_UNIMED := (VI_UNIMED / 10);
END;
END ;

FOR I?_I := 2 TO 9 DO BEGIN
I?_RESTO := VI_PREST MOD 10;
I?_TOTAL := (I?_TOTAL + (I?_I * I?_RESTO));
VI_PREST := (VI_PREST / 10);
END;
// ..........................................................................

I?_RESTO := (I?_TOTAL * 10) MOD 11;
S?_DIGITO := StrUtils(I?_RESTO, 1);

Obs: Não testei o código.

Marcos.


Responder

Gostei + 0

19/10/2007

Martins

trata-se de uma verificação de digito verificador...


Digito verificador de que?


Responder

Gostei + 0

19/10/2007

Sremulador

[quote:c6447d481f=´sremulador´]trata-se de uma verificação de digito verificador...


Digito verificador de que?[/quote:c6447d481f]


do crm, ptz :cry:


Responder

Gostei + 0

22/10/2007

Sremulador

Acabei fazendo assim, mas não deu certo :(

Function FFcrm(V_PREST: String): String;
var
I_TOTAL, I_I, I_RESTO, VI_PREST: integer;

begin
VI_PREST := StrToInt(V_PREST);
I_TOTAL := 0;
I_I := 0;
I_RESTO := 0;

//CALCULO DO DIGITO

IF VI_UNIMED <> 0 THEN BEGIN
FOR I?_I := 2 TO 8 DO BEGIN
I?_RESTO := VI_UNIMED MOD 10;
I?_TOTAL := (I?_TOTAL + (I?_I * I?_RESTO));
VI_UNIMED := (VI_UNIMED / 10);
END;
END ;

FOR I_I := 2 TO 9 DO BEGIN
I_RESTO := VI_PREST MOD 10;
I_TOTAL := (I_TOTAL + (I_I * I_RESTO));
VI_PREST := (VI_PREST div 10);
END;
// ..........................................................................

I_RESTO := (I_TOTAL * 10) MOD 11;
Result := RightStr (Inttostr(I_RESTO), 1);
end;

era pra retornar 9 e acabou retornando 5


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar