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)
| | |-+  Como leo un archivo(base de datos) con c++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como leo un archivo(base de datos) con c++?  (Leído 2,655 veces)
razler

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Como leo un archivo(base de datos) con c++?
« en: 28 Junio 2010, 04:13 am »

Hola que tal quisiera que me ayuden con un problema, deseo leer o abrir un documento de texto, que es una base de datos, de una persona con tres campos, como nombre ,apellido y edad.
Jorge Luis Ramos Huertado 20
Enrique jose Jimenes altamirano 17
juan Men Otero ford 20
Carlos YARA tataje 19
Lo intentado leer con este programa(es solo una parte del programa), pero cuando lo muestro, me repiten los datos y otros simbolos, y no salen de manera estructurada.
Lo que quiero es tener los datos ordenados en memoria para poder realizar otras funciones. como mostrar solo los nombres o los apellidos con las edades

Código:
#include<conio.h>
#include<cstdlib>
#include<stdio.h>
using namespace std;
const int MAX =10;
struct persona{
   char nombre[20];
   char apellido[20];
   int edad;
};
void mostrardatos(persona p[MAX],int dim);
void recuperar(persona p[MAX], int *dim);
int main()
{
   int nd=0;
   char opc;
   persona a[MAX];
   do{
      opc=getch();
      switch(opc){
         case'1':system("cls");
            mostrardatos(a,nd);
            getch();
            break;
         case'2':system("cls");
            recuperar(a,&nd);
            getch();
            break;
         }
   }while(opc!='0');
   system("pause");
   return (0);
}
void mostrardatos(persona p[MAX],int dim)
{
   int i;
   if(dim==0){
      printf("\n\tNo hay datos registrados");
   }
   for(i=0;i<dim;){
      printf("%6d",i+1);
      printf("\t%s",p[i].nombre);
      printf("\t\t%s",p[i].apellido);
      printf("\t\t%d\n",p[i].edad);
      i=i+1;
   }
   printf("\n\n");
   
}
void recuperar(persona p[MAX], int *dim)
{
   persona A;
   FILE *F;
   int n=0;
   F=fopen("datos.txt","r+");
   if(F==NULL){
      cout<<"No se puede abrir el Archivo\n";
      exit(1);
   }
   
   while(!feof(F)){
      fread(&A,sizeof(A),1,F); 
      p[n]=A;
      n=n+1;
   }
   fclose(F);
   *dim=n-1;
   cout<<"\t\tSus Datos han sido Recuperados";
   cout<<"\n\n";
   cout<<"\t\t";
   system("pause"); 
}
Quizas tenga que usar el fstream pero mi problema es como leer los datos de esa base de datos de manera estructurada y luego trabajar con ellos o quizas el archivo de texto debo guardarlo de otra manera? No se como hacerlo...
Les agradeceria mucho su ayuda.


En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Como leo un archivo(base de datos) con c++?
« Respuesta #1 en: 28 Junio 2010, 04:16 am »

Tendrias que establecer algun parametro de separacion de datos por ejemplo usar , (coma) o . (punto) asi te seria mucho mas facil hacer una lectura

Acuerdate que antes de este paso... while( !feof( F ) ) debes hacer una lectura previa para comprobar si hay datos o no.

Salu10.


« Última modificación: 28 Junio 2010, 04:22 am por nicolas_cof » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como importar base de datos, de un archivo acess
Bases de Datos
XpandyX 4 2,833 Último mensaje 28 Julio 2011, 17:55 pm
por XpandyX
Subir archivo .xls a base de datos!!! « 1 2 »
PHP
01munrra 10 5,129 Último mensaje 21 Enero 2012, 05:29 am
por 01munrra
descifrar archivo de base de datos (.dat)
Dudas Generales
janotajan 0 1,730 Último mensaje 6 Febrero 2014, 04:41 am
por janotajan
[Duda]Se puede usar archivo txt plano como Base de datos
Java
PabloPbl 9 7,252 Último mensaje 16 Diciembre 2014, 16:56 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines