Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Leer desde un fichero escrito en hexadecimal

Estas en el tema de Leer desde un fichero escrito en hexadecimal en el foro de C/C++ en Foros del Web. Hola a todos! tengo que leer desde un fichero, que esta escrito en hexadecimal, una cadena y guardarla en "trocitos" segun me interese. No se ...
  #1 (permalink)  
Antiguo 29/04/2010, 16:16
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 2 meses
Puntos: 2
Leer desde un fichero escrito en hexadecimal

Hola a todos! tengo que leer desde un fichero, que esta escrito en hexadecimal, una cadena y guardarla en "trocitos" segun me interese. No se con qué funcion leer, porque ya he probado con fgetc, fgets, fread y fscanf y nada...

Lo que hay en el archivo es mas o menos lo siguiente: aa0010[Onda 3][serie][Encontrados]1730006066660733365 a55

con lo que el primer octeto, sera 0xAA, el siguiente 0x00, 0x10, etc... como puedo obtener esos datos y por ejemplo el 0x00 y el 0x10 convertirlos a un mismo entero??

Muchas gracias! ;)
  #2 (permalink)  
Antiguo 29/04/2010, 23:58
Avatar de gvite666  
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años
Puntos: 4
Respuesta: Leer desde un fichero escrito en hexadecimal

pues mira para leer en hexadecimal, yo utilizo el fprintf, yo creo que tu problema es al momento de poner tu mascara, en vez de poner %i, pones un %x y con esto ya lees tu numero en hexadecimal, lo que hace esto es: lee un numero en hexadecimal, pero teniendo en cuenta que es un entero, entonces el compilador al momento de tomarlo va a suponer que es un entero y lo va a manejar como un numero decimal.

Ejemplo:
declaras una variable de tipo:
int num;
abres tu archivo y lees con esto
fscanf(fArchivo,"%x",&num);
en este caso si tu archivo tiene una "a" lo que almacenara en num no sera una "a" sino un 10 que es el valor en decimal.
solo seria cuestion de ver q pasa con las particiones, ya sea que hagas una serie de operaciones para esto (q es un poco complicado) o que mejor lo leas como una cadena, partir la cadena y luego convertir cada "trocito".
  #3 (permalink)  
Antiguo 01/05/2010, 03:28
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 2 meses
Puntos: 2
Respuesta: Leer desde un fichero escrito en hexadecimal

veras,esto es lo que he hecho:

Código:
while((caracter=fgetc(stdin))!=EOF)
	{
	  fscanf (stdin, "%x", &caracter);
	  fprintf(stdout, "%x\n", caracter);
	}
y esto es lo que me sale al ejecutar el codigo:
Código:
0
10
5b
4f
da
3
5d
5b
e
72
e
5d
e
c
6f
6e
74
ad
6f
73
5d
0
0
ff
36
5a
55
Yo creo que no es exactamente lo que tu decias que iba a salir, porque algunos estan en hexadecimal y otro no...
Y otra pregunta, ¿Cómo puedo dividir en trocitos como dices tu? es decir, como funciona y como puedo utilizar una mascara...

Última edición por gastro; 01/05/2010 a las 12:49

Etiquetas: escrito, fichero, hexadecimal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:24.