Conectar-se
Quem está conectado
30 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 30 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Convidad
Convidado

[Resolvido] Preciso de ajuda com conversão decimal X hexadecimal

em Qui 29 Abr 2010, 02:01
Eu fiz um script que retorna uma string do valor hexadecimal de um número decimal qualquer. Eu já sei que dá pra usar o cifrão em gml quando o valor a ser trabalhando é hexadecimal ($F0A0EE)... Mas o que eu quero é o seguinte: eu preciso escrever esse valor hexadecimal em um arquivo de texto!

Agora é que vem o "porém". Eu fiz um script que trabalha só com um valor decimal pequeno, no máximo 255, que é o máximo que um byte pode assumir. Fiz isso porque tem que ser assim mesmo, porque depois eu vou usar esse arquivo escrito em hexa para várias outras coisas...

Só que: o script que eu fiz é lento! Quando eu mando o programa ler byte a byte de um arquivo qualquer e transformar esses valores em uma string hexa (pra escrever no outro arquivo que eu falei), ele demora pra caramba!

O que eu preciso?

Preciso de uma forma de converter um número decimal (menor que 255) em uma string hexadecimal desse mesmo valor de forma rápida, pois vai trabalhar lendo arquivos byte a byte! Eu queria fazer isso via gml, sem usar dll...


Última edição por Capitão Commando em Sab 01 Maio 2010, 06:09, editado 1 vez(es)
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 1 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: [Resolvido] Preciso de ajuda com conversão decimal X hexadecimal

em Qui 29 Abr 2010, 11:32
Amigão, fiz uma função de conversão, testa ai e vê se ela está um pouco mais rápida.

var file_name, handle, i, size, byte, hexa, dig, result;
file_name = argument0;
handle = file_bin_open(file_name, 0);
size = file_bin_size(handle);
hexa = "";
//Vetor pra agilizar e nao precisar de IF
h[0]="0";h[1]="1";h[2]="2";h[3]="3";h[4]="4";h[5]="5";h[6]="6";h[7]="7";h[8]="8";h[9]="9";
h[10]="A";h[11]="B";h[12]="C";h[13]="D";h[14]="E";h[15]="F"
result := '';
for (i = 0; i < size; i +=1 )
{
byte = file_bin_read_byte(handle);
do {
rem = (byte mod 16);
byte = (byte div 16);
dig = h[rem];
hexa = dig + hexa;
} until (byte == 0)
result := result + hexa;
hexa := '';
}
file_bin_close(handle);
return ("$" + result);

Basta criar um script colocar esse codigo e usar como funcao.
hexa = funcao("arquivo.bin");
Convidad
Convidado

Re: [Resolvido] Preciso de ajuda com conversão decimal X hexadecimal

em Qui 29 Abr 2010, 23:35
Valeu vinians!!! Cara ficou bem mais rápido sim (e ainda aprendi)!! Vou colocar créditos pra você no meu projeto aqui amigão! [Z¬D]
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum