1
Aprender a programar desde cero / funcion en C para Buscar y Ordenar datos en formato hexadecimal lenguajeC
« en: 25 de Julio 2016, 16:17 »
Hola bs ds. Estoy intentando crear un programa que abra un archivo.txt en formato hex. Luego me permita buscar un dato x y a partir de este parametro ordenarlo al comienzo de linea.
Llegué hasta abrir un archivo y recorrerlo mostrando en formato hex, pero luego estoy muy trabado en alguna funcion de buscar y ordenarlo.
EL codigo es el siguiente:
Llegué hasta abrir un archivo y recorrerlo mostrando en formato hex, pero luego estoy muy trabado en alguna funcion de buscar y ordenarlo.
EL codigo es el siguiente:
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
void muestra (char *nom);
int main(char argc,char **argv)
{
if (argc<2)
{
printf("uso: ver archivo\n");
getch();
exit(1);
}
else
{
muestra(argv[1]);
}
}
/* La func "muestra" lee y despliega el archivo. Los archivos son desplegados
en reglones de 16 bytes en formato hexadecimal y en su equivalente ASCII.
*/
void muestra(char *nom)
{
FILE *f;
unsigned char ch;
char a [16] = {0};
int i=0, j=0, k;
f = fopen(nom, "r");
if (f==NULL)
{
printf("NO existe el archivo: %s", nom);
getch();
exit(1);
}
else
{
ch= fgetc(f);
while (!feof(f))
{
printf("%02x ",ch); /*Esta sentencia despliega en formato hexa. El 0
se utiliza para rellenar el campo de 0Žs en lugar
de usar espacios */
a[i]= ch;
i++;
if (i==16)
{
j++;
for (k=0;k<16;k++)
if (isprint(a[k])) /*La func "isprint" se utiliza para desplegar
solo caracteres imprimibles ASCII*/
printf("%c",a[k]);
else
printf(".");
i= 0;
printf("\n");
}
if (j==24)
{
printf("Presione cualquier tecla...");
getch();
printf("\n");
j = 0;
}
ch = fgetc(f);
}
}
j= i;
while (j<16)
{
printf(" ");
j++;
}
for (k=0;k<1;k++)
if (isprint(a[k]))
printf("%c", a[k]);
else
printf(".");
printf("\nPresione cualquier tecla...");
getch();
}