border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 


Retroceder   VB-MUNDO - Programacion Visual > Programacion - Lenguajes > C/C++
Registrarse FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 07-07-2007, 17:26:58
Junior Member
Site Admin
 
Registrado: jul 2007
Posts: 4
dani_register Valoración +2
Predeterminado ¿Como Cargar una Estructura en un Archivo Binario?

Hola, Estoy Haciendo un TP y necesitaria saber como cargar en un Archivo Binario esta Estructura (MAIN NODE). Lo estuve cargando y me crea el archivo pero me devuelve basura. ¿Como Seria el Codigo de un programita para cargarlo? Hay les dejo el Tipo, la Creacion de la Variable y la Carga por Pantalla.
Muchas Gracias. Nos Vemos.

//MAIN NODE
typedef struct Smnode
{
char NAME[40];
char ADDRESS[50];
double CASH;
struct Smnode *NEXT;
} mnode;

//Type POINTER TO A MAIN NODE
typedef mnode *ptrmn;

//LOAD THE MAIN NODE
ptrmn Nmnode;
Nmnode=malloc(sizeof(mnode));
puts ("NAME:")
gets (Nmnode->NAME);
puts ("ADDRESS:")
gets (Nmnode->ADDRESS);
puts ("CASH:")
scanf ("%d",&Nmnode->CASH);
Nmnode->NEXT=NULL;
Responder Con Cita
  #2 (permalink)  
Antiguo 08-07-2007, 01:54:11
Junior Member
Site Admin
 
Registrado: jul 2007
Posts: 4
dani_register Valoración +2
Predeterminado

Yo habia hecho un Programa para cargar un archivo y otro para leerlo. Funcionaban bien, pero cuando los hice funciones para correrlos desde un Programa Principal dejaron de funcionar, ni siquiera carga el archivo (Lo Crea, pero lo deja vacio). Aca les mando el Programita si saben cual es el error por favor avisenme. Muchas Gracias.

#include <stdio.h>
#include <string.h>

//Estructura MNODE
typedef struct Smnode
{
char NAME[40];
char ADDRESS[50];
double CASH;
struct Smnode *NEXT;
} mnode;

int WtF (FILE *f)
{
//Variables Locales
mnode MN;

//Apertura del Archivo
if ((f=fopen("INFO.dat","wb"))==NULL)
{
puts ("ERROR AL ABRIR EL ARCHIVO");
return 1;
}

//Carga del MNODE
puts ("NAME");
gets (MN.NAME);
puts ("ADDRESS");
gets (MN.ADDRESS);
puts ("CASH");
scanf ("%d",&MN.CASH);
MN.NEXT=NULL;
puts ("");

//Carga del MNODE al Archivo
fwrite(&MN,sizeof(MN),1,f);

//Cerrar Archivo
fclose(f);
return 0;
}

int RfF (FILE *f)
{
//Variables Locales
mnode MN;
int C;

//Apertura del Archivo
if ((f=fopen("INFO.dat","wb"))==NULL)
{
puts ("ERROR AL ABRIR EL ARCHIVO");
return 1;
}

//Carga del MNODE (Del Archivo)
fread(&MN,sizeof(MN),1,f);

//Impresion del MNODE
MN.NEXT=NULL;
puts ("NAME");
printf ("%s\n",MN.NAME);
puts ("ADDRESS");
printf ("%s\n",MN.ADDRESS);
puts ("CASH");
printf ("%d\n",MN.CASH);

//Cerrar Archivo
fclose(f);
scanf ("%d",&C);
return 0;
}

//Programa Principal
int main()
{
FILE *f;
WtF (&*f);
RfF (f);
return 0;
}
Responder Con Cita
  #3 (permalink)  
Antiguo 08-07-2007, 08:14:11
Junior Member
Site Admin
 
Registrado: jul 2007
Posts: 4
dani_register Valoración +2
Predeterminado

Necesito Sacar el Puntero Nmnode de la Funcion RfF que Lee un Registro del Archivo y lo Carga en un Puntero a ese tipo de Registro. Cuando lo Cargo y Leo antes de Salir de la Funcion esta bien Cargado, pero cuando cuando intento leerlo en el programa principal falla. Aca les Mando las Estructuras, la Funcion y el Programa Principal (Con Impresiones para que vean como queda en la Funcion y como falla en el Programa Principal). Si saben como podria solucionarlo avisenme, muchas gracias.

typedef struct Smnode
{
char NAME[40];
char ADDRESS[50];
double CASH;
struct Smnode *NEXT;
} mnode;

//------------------------------------------------------------------------------

//Type POINTER TO A MAIN NODE
typedef mnode *ptrmn;

//------------------------------------------------------------------------------

//Funcion READ FROM FILE

int RfF (FILE *f,ptrmn *Nmnode)
{
//Variables Locales
mnode MN;
ptrmn Amnode;

Nmnode=malloc(sizeof(mnode));
if ((f=fopen("INFO.dat","rb"))==NULL)
{
puts ("ERROR AL ABRIR EL ARCHIVO");
puts ("");
return 1;
}
fread (&MN,sizeof(MN),1,f);
MN.NEXT=NULL;
(*Nmnode)=&MN;

//Impresion de Prueba

puts ("");
printf ("Nombre: %s\n",(*Nmnode)->NAME);
printf ("Direccion: %s\n",(*Nmnode)->ADDRESS);
printf ("Saldo: %d\n",(*Nmnode)->CASH);
puts ("");

fclose (f);
return 0;
}


//------------------------------------------------------------------------------

int main ()
{
//Variables Locales
ptrmn mNODE;
FILE *f;
RfF (f,&mNODE);
puts ("");
printf ("Nombre: %s\n",mNODE->NAME);
printf ("Direccion: %s\n",mNODE->ADDRESS);
printf ("Saldo: %d\n",mNODE->CASH);
puts ("");
return 0;
}
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Cómo cargar archivo *.txt determinado en un listbox champiton Visual Basic 6.00 5 05-07-2007 13:45:21
como leo la estructura de un archivo dat keoma77 RM/COBOL & Relativity 1 27-10-2006 21:07:25
Leer de archivo binario un variant de VB6 wakeup Visual Basic.NET 2003 & 2005 0 13-10-2006 08:32:00
Como cargar en Windows un archivo Ocxs y un Dll Gace Visual Basic 6.00 1 29-04-2005 17:55:25
como leer correctamente base64 (binario)??? ivanitoweb Visual Basic 6.00 0 12-02-1970 10:46:07


La franja horaria es GMT. Ahora son las 05:32:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right