ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Ajuda converte vb em delphi

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
oiselcroo
Novato
Novato


Registrado: Domingo, 19 de Fevereiro de 2017
Mensagens: 29

MensagemEnviada: Dom Fev 19, 2017 2:04 pm    Assunto: Ajuda converte vb em delphi Responder com Citação

tenho esta função em vb6 e estou precisando converter ela pra delphi, comecei agora no delphi, desde ja agradeço a atenção de todos

Public Function CriptSenha(Psenha As String) As Variant
Const MIN_ASC = 32
Const MAX_ASC = 126
Const NUM_ASC = MAX_ASC - MIN_ASC + 1

Chave = 2001 ''qualquer nº para montar o algorítimo da criptografia
Dim Offset As Long
Dim str_len As Integer
Dim i As Integer
Dim ch As Integer

'3873092
to_text = ""
Offset = NumericPassword(Chave)
Rnd -1
Randomize Offset
str_len = Len(Psenha)
For i = 1 To str_len
ch = Asc(Mid$(Psenha, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
Offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch + Offset) Mod NUM_ASC)
ch = ch + MIN_ASC

'novo
'to_text = to_text & Chr$(ch)
If Chr$(ch) = "'" Then
to_text = to_text & "´"
Else
to_text = to_text & Chr$(ch)
End If
End If
Next i

CriptSenha = to_text
End Function
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Dom Fev 19, 2017 11:23 pm    Assunto: Responder com Citação

Existe alguns promenores no codigo postado
1º - quem é NumericPassword
2º - rnd() é o mesmo de random() no delphi contudo no delphi não se chama random sem argumento tal como no vb.


Em todos os caso fica algo parecido com isso arqui:

Código:
Function CriptSenha(Psenha : String) : String;

Const MIN_ASC = 32
Const MAX_ASC = 126
Const NUM_ASC = MAX_ASC - MIN_ASC + 1

var
  Chave, i,x, ch : Integer;
  Offset:longint;

//3873092

Chave    := 2001; //qualquer nº para montar o algorítimo da criptografia
Offset   := NumericPassword(Chave); // <- quem é NumericPassword
//rnd    := -1; // delphi não permite este comando para isso é usado o randseed(); logo a seguir
x        :=256; // possivel falha na compatibilidade do random no vb e delphi esteja em achar x sastifatorio para ambas lingaguem

result  := "";

randseed(Offset); // subistituto do randomize(Offset) do vb

For i := 1 To length(Psenha) do
begin
  ch := ord(Psenha[i]);
  If (ch >= MIN_ASC) And (ch <= MAX_ASC) Then
  ch := ch - MIN_ASC ;
  Offset := (NUM_ASC + 1) * Random(x); // rnd em vb pode ser chamado sem argumento em delphi não
  ch := ((ch + Offset) Mod NUM_ASC);
  ch := ch + MIN_ASC;
  // novo
  // result := result + Chr(ch);
  If Chr(ch) = "'"
  Then result := result + "´"
  Else result := result + Chr$(ch);
end;

end;


resolvendo as duas questões levantada logo no inicio quanto a NumericPassword e rnd todo resto estar ok.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
oiselcroo
Novato
Novato


Registrado: Domingo, 19 de Fevereiro de 2017
Mensagens: 29

MensagemEnviada: Seg Fev 20, 2017 10:46 am    Assunto: Responder com Citação

Chave := 2001; //qualquer nº para montar o algorítimo da criptografia
Offset := NumericPassword(Chave) = 3873092
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB