DataFlex To delphi...
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
Curtidas 0
Respostas
Paulo
17/10/2007
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.
GOSTEI 0
Sremulador
17/10/2007
trata-se de uma verificação de digito verificador...
GOSTEI 0
Toninhonunes
17/10/2007
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
GOSTEI 0
Sremulador
17/10/2007
???
GOSTEI 0
Toninhonunes
17/10/2007
[quote:0378d64f0e=´sremulador´]Alguem saberia converter este código em dataflex para delphi...
[/quote:0378d64f0e]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
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.
GOSTEI 0
Sremulador
17/10/2007
[quote:66fcff2def=´toninhonunes´][quote:66fcff2def=´sremulador´]Alguem saberia converter este código em dataflex para delphi...
[/quote:66fcff2def]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
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
GOSTEI 0
Marcoslondrina
17/10/2007
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.
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.
GOSTEI 0
Martins
17/10/2007
trata-se de uma verificação de digito verificador...
Digito verificador de que?
GOSTEI 0
Sremulador
17/10/2007
[quote:c6447d481f=´sremulador´]trata-se de uma verificação de digito verificador...
Digito verificador de que?[/quote:c6447d481f]
do crm, ptz :cry:
GOSTEI 0
Sremulador
17/10/2007
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
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
GOSTEI 0