elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Leer archivo de registros y guardar en variables
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer archivo de registros y guardar en variables  (Leído 3,617 veces)
ank3r

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Leer archivo de registros y guardar en variables
« en: 21 Abril 2014, 03:25 am »

Con un programita en C estoy creando un archivo con la siguiente estructura:

Código:
struct t_config {
   char ip[13];
   int puerto;
};struct t_config t_config;

Es un archivo que tiene una IP (la puse como string) y un puerto de 4 numeros (un int)

Ahora tengo otro programa que abre este archivo. Lo que me gustaría es que tome la ip y la guarde en una variable y por otro lado que guarde en otra variable el puerto. Intente con fscanf, fseek, fread y no me sale. Cuando lee el puerto, por ejemplo le pongo 5000 (con ceros) me pone otros números..


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Leer archivo de registros y guardar en variables
« Respuesta #1 en: 21 Abril 2014, 03:36 am »

Se más específico. Pon un ejemplo del fichero, el código con el que lo lees, y qué otros números.


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Leer archivo de registros y guardar en variables
« Respuesta #2 en: 21 Abril 2014, 12:06 pm »

Con un programita en C estoy creando un archivo con la siguiente estructura:

Código:
struct t_config {
   char ip[13];
   int puerto;
};struct t_config t_config;

Error. Esa es una estructura de datos que usa un programa... los ficheros no entienden de eso.

Entre otras cosas porque esa información se puede almacenar en mil formatos diferentes, binario, XML, Json, XDR, ASN.1, texto plano, ...

Esa definición tampoco indica si los dos datos están en la misma línea o en líneas diferentes... vamos, que la definición de una estructura sirve más bien para poco a la hora de conocer la estructura de los datos en un fichero.

Es un archivo que tiene una IP (la puse como string) y un puerto de 4 numeros (un int)

Error. el puerto puede ser de 4 dígitos... pero nunca de 4 números... ( la IP sí tiene 4 números ).

Quisquilloso... depende... con 4 números se puede interpretar que estás guardando el número de puerto separando cada dígito en un número independiente... hay que ser más conciso.

Ahora tengo otro programa que abre este archivo. Lo que me gustaría es que tome la ip y la guarde en una variable y por otro lado que guarde en otra variable el puerto. Intente con fscanf, fseek, fread y no me sale. Cuando lee el puerto, por ejemplo le pongo 5000 (con ceros) me pone otros números..

Sin saber cómo está guardada la información en el fichero y cómo estás intentando recuperarla es imposible saber qué está mal.

Así a bote pronto puede ser que el dato esté almacenado en formato texto y tú estés leyéndolo como un int o al revés... pero son tiros al aire.
En línea

ank3r

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Leer archivo de registros y guardar en variables
« Respuesta #3 en: 21 Abril 2014, 22:22 pm »

Se más específico. Pon un ejemplo del fichero, el código con el que lo lees, y qué otros números.
Sin saber cómo está guardada la información en el fichero y cómo estás intentando recuperarla es imposible saber qué está mal.
voy a ser más específico:
Estoy creando con un programita C un archivo de esta forma

Código:
int main ( void){

FILE *ptr;
char ip[13];
int puerto;

printf("Decime la IP");
scanf("%s",ip);
printf("Decime el puerto");
scanf("%d",&puerto);


ptr = fopen ("archivo", "a");
fprintf(ptr,"%s\n",ip);
fprintf(ptr,"%d\n",puerto);

fclose (ptr);
  return 0;
}

el archivo cuando lo abro con gedit (Estoy en lubuntu) me aparece asi:
Supongamos que le mandé estos datos a la IP, primera línea y puerto en la segunda.
Código:
192.168.0.53
5000




Este archivo lo pongo en el directorio del programa que quiero que lo lea y estoy haciendo así:

Código:
FILE *CONFIG;
CONFIG = fopen("archivo","r");

if (CONFIG == NULL)
printf("Error al abrir el archivo\n");
else {

ACÁ QUIERO OBTENER LA IP POR UN LADO
                Y GUARDARLA EN UNA VARIABLE, CON EL PUERTO
                LO MISMO

}

PD: pregunta a parte, esto que hago acá:

Citar
FILE *CONFIG;
   CONFIG = fopen("archivo","r");


Es referenciar el archivo como variable de entorno? Eso es lo que me piden que haga y no sé si es la forma
« Última modificación: 22 Abril 2014, 00:26 am por ank3r » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines