Ver la Versión Completa : Como puedo pasar este codigo a delphi el codigo de la imagen es codigo python
Javier13
14-11-2017, 18:18:24
Anexo la imagen en un archivo .rar
les agradecía demasiado
MAXIUM
14-11-2017, 19:09:26
Seria más fácil saber el objetivo de dicha función ¿Que es lo que hace?
Javier13
14-11-2017, 19:20:34
Convierte cualquier base de decimal a hexadecimal etc.
ese código convierte cualquier base no nada mas una
MAXIUM
14-11-2017, 19:57:47
Existe la función IntToHex ¿es eso?
1.- http://www.delphibasics.co.uk/RTL.asp?Name=IntToHex
2.- http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_IntToHex@Int64@Integer.html
Javier13
14-11-2017, 19:59:59
Pero no nada mas convierto a esa base, sino ese código hace cualquier base en una sola funcion
por eso quiero pasar ese cogido a delphi
MAXIUM
14-11-2017, 20:51:30
Convierte cualquier base de decimal a hexadecimal etc.
ese código convierte cualquier base no nada mas una
Oh bueno, ahora entendí. Creo que esto puede ser de utilidad How to convert between binary, octal, decimal and hexadecimal
http://delphi.cjcsoft.net/viewthread.php?tid=45966
Por supuesto también se puede traducir el código que has puesto si no sirve lo anterior y seguimos con el hilo.
Javier13
14-11-2017, 21:04:23
Lo que busco es traducir ese codigo a delphi
te agradecería mucho
Casimiro Notevi
14-11-2017, 21:52:25
Lo que busco es traducir ese codigo a delphi
te agradecería mucho
Ve haciéndolo y te vamos ayudando con los problemas que tengas.
Javier13
15-11-2017, 22:21:21
Así va mi codigo:
function Conversion(Numero, desde, hasta: string): string;
var
k : Integer; //ya
n : Integer; //creo
digito : string;
valor : Integer;
pos : Integer;
alfabeto : String;//TStringList;
alfalis : TStringList;
maximo : Integer;
p : Integer;
resultado : String;
actual : Real;
division : integer;
//z : extended;
resta : integer;
resultadok: Real;
indice : string;
begin
// Round : redondea un Número de punto flotante a un valor entero.
// Length :
// Power : Potencia
// div : Divicion entera
// Mod : Modulo o resuduo
alfabeto:='abcdefghijklmnñopqrstuvwxyz';
maximo:=Length(alfabeto);
if not (StrToInt(desde) < maximo) and (StrToInt(desde) >1) then begin
Showmessage('Base origen imposible');
Exit;
end;
if not (StrToInt(hasta) < maximo) and (StrToInt(hasta) >1) then begin
Showmessage('Base destino imposible');
Exit;
end;
k:=0;
n:= Length(Numero);
for pos in [0..n] do begin
digito:=numero[pos];
end;
if not (edNumero.Text<> digito) and (edNumero.Text<>alfabeto)then begin
Showmessage(Digito + ' No es valido en ninguna base');
Exit;
end;
{ valor:=alfabeto.IndexOf(digito); }
if not valor < StrToInt(desde) then begin
Showmessage(Digito + ' No es valido en base origen');
Exit;
end;
k:= valor*StrToInt(desde);
resta:= (n - pos - 1);
resultadok:= Power(k,resta);
p:=0;
while hasta < IntToStr(k) do begin
p:= p+1;
resultado:= '';
end;
while p > 0 do begin
p:=p-1;
actual:= (power(StrToInt(hasta),p));
resultado:=resultado+alfabeto+IntToStr((k div Round(actual)));
k:= k mod Round(actual);
Result:=resultado;
end;
end;
roman
16-11-2017, 15:41:33
Por favor, usa las etiquetas adecuadas para publicar código:
https://fotos.subefotos.com/29770cbc725dc27a6d917f70560c0ff3o.gif
LineComment Saludos
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.