Converter função Pascal(Delphi) para JAVA [RESOLVIDO]
15 respostas
S
savoine
Pessoal sou newbie em Java e estou migrando meu aplicativo feito dem Delphi para uma aplicação em Flex + Java e precisava converter essa função de criptografia em Java, segue abaixo o codigo.
Você simplesmente quer que eu alguém que entenda de Delphi, pegue seu código, traduza para Java e o entregue á você?!
Muito fácil né?
Já estudou alguma apostia gratuita de Jav? Leu um livro? Enfim, buscou meios de aprender o que são métodos, modificadores de acesso entre outros em Java?
Melhor, sabe o que é uma classe? Um objeto?
Se esforça amigo, se queres aprender algo é só assim.
Abraços.
S
savoine
Converter essa função para o JAva ja andei procurando alguma coisa mas não consegui, tentei dessa forma
Já está muito melhor, recomendo você tirar os comentários com fragmentos de código Delphi, fica mais claro.
Agora, conte-nos, o que houve de errado? Gera uma exceção ou o resultado obtido está errado?
Abraços.
S
savoine
Da essa mensagem:
java.lang.StringIndexOutOfBoundsException : String index out of range: -8
nel
savoine:
Da essa mensagem:
java.lang.StringIndexOutOfBoundsException : String index out of range: -8
O problema de se utilizar um substring com valores fixos é que você tem que testar o tamanho da String quando fores realizar um substring dessa forma.
Possivelmente, a sua String possui um tamanho ao inferior ao passado para a variavél “i”. É como se você estivesse tentando acessar a posição de número 8 da string, sendo que ela não existe, termina em 7, entende?
Ops!
Tente (pass.lenght() -1). (No seu for, é claro).
A string tem tamanho 17, mas começa em 0, ou seja, 0…1, por isso não encontrou a posição 17.
Aii eu digo agora para usar pass.lenght -1, assim fica correto.
Abraços.
Polverini
não seria melhor usar o md5 ?
S
savoine
Mesmo problema.
java.lang.StringIndexOutOfBoundsException : String index out of range: -16
L
lucasgcp
não seria melhor usar o md5 ? [2]
nel
savoine:
Mesmo problema.
java.lang.StringIndexOutOfBoundsException : String index out of range: -16
Simples, não prestei a devida atenção.
O substring não permite que você comece em um valor maior que o fim.
Ou seja, (2,1), (5, 1) e por ai em diante.
Pensando bem rápido, veja se invertando sua string e alterando o substring no seu for para (1, i) não resolve.
Falando nisso, esse era o objetivo? Inverter a String?
Abraços.
jamirdeajr
Acho que o erro pode ser devido as diferenças do método substring entre java e delphi.
No java os parâmetros são posição inicial (partindo de zero) e posição final,
no Delphi é posição inicial (partindo de 1) e número de caracteres.
Então, por exemplo,
//Em Delphisubstring(7,3)// Em java ficasubstring(6,8);//
nel
jamirdeajr:
Acho que o erro pode ser devido as diferenças do método substring entre java e delphi.
No java os parâmetros são posição inicial (partindo de zero) e posição final,
no Delphi é posição inicial (partindo de 1) e número de caracteres.
Então, por exemplo,
//Em Delphisubstring(7,3)// Em java ficasubstring(6,8);//
Tá ai o motivo de eu ter dito a ele para estudar.
Eu não fazia a menor idéia de que era assim que funcionava o método subString() do Delphi.
É uma diferença crucial, suficiente para causar problemas.
Abraços.
S
savoine
Pessoal andei pesquisando alguns exemplos na internet e vi que o Delphi trabalha diferente do Java em relação a espaços de uma string (pelo menos pelos testes que tentei fazer)
Abaixo segue código feito em Delphi e depois no JAVA