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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Crear archivo de texto y cargarlo
« en: 23 Mayo 2016, 21:20 pm »

Hola quiero crear un archivo y cargarlo a partir de una estructura.
Crear el archivo creo que lo hago bien pero el problema es que no se como se carga los datos

Código:
#include <stdio.h>
#include <stdlib.h>
#define Arct "D:\\Ejercicios\\ArchivoDeTexto"
#include "ArchivoDeTexto.h"


int main()
{
    int i;
    tpers persona[5];
    FILE *fpTex;
    fpTex=fopen("Arct.txt","wt");
    if(fpTex=NULL)
    {
        printf("error");
    }

for(i=0;i<5;i++)
{
    printf("Ingrese el DNI:");
    scanf("%ld",&persona[i].dni);
    printf("El apellido y nombre:");
    scanf("%s",persona[i].apyn);
    printf("Ingrese el sexo:");
    scanf("%s",persona[i].sex);
    printf("Ingrese la fecha:");
    scanf("%d/%d/%d",
                        &persona[i].fec.di,
                        &persona[i].fec.me,
                        &persona[i].fec.an);
    printf("Ingrese el impuesto:");
    scanf("%f",&persona[i].impuesto);
    printf("\n");
}

    return 0;
}

Código:
typedef struct
{
    int di,
        me,
        an;
}tfecha;

typedef struct
{
    long dni;
    char apyn[34];
    char sex[2];
    tfecha fec;
    float impuesto;
}tpers;

Creo que hay una funcion para esto pero no pude encontrar cual es.
Gracias por adelantado


En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Crear archivo de texto y cargarlo
« Respuesta #1 en: 23 Mayo 2016, 21:37 pm »

Para empezar, tendrías que decidir con qué estructura guardar la estructura. Por ejemplo, podría ser la siguiente:

Código:
3456566
Perez Alex
H
3/7/1995
54.0

6588678
Fernandez Pablo
H
7/12/1997
56.0

...

Para ello, solo tendrías que hacer fprintf(fpTex, /*fecha, nombre, y todo lo demás*/);

O podrías guardar la estructura tal y como viene representada en memoria.

Sabiendo que puedes representar la dirección a una estructura como cadena de caracteres (char *), sabiendo que existe la función fwrite, y sabiendo que para usar fwrite lo más recomendable es abrir el archivo en binario, puedes hacer la tarea con un par de funciones


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
sebamoron86

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Crear archivo de texto y cargarlo
« Respuesta #2 en: 26 Mayo 2016, 16:32 pm »

Hola, muchas gracias por contestar.
¿lo que vos me estas diciendo no es hardcodearlo?
No se si me explique bien pero lo que quiero es que el programa me pida los datos, que los cargue y yo despues abriendo el .txt los pueda ver
¿El fprintf tendria que ir adentro del for y hacerse cada vez que ingreso el lote de una persona, no?
Muchas gracias de nuevo
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Crear archivo de texto y cargarlo
« Respuesta #3 en: 26 Mayo 2016, 16:39 pm »

Puedes guardar la estructura completa o dato por dato

Como te dicen tienes que decidir como hacerlo si quieres guardar toda la memoria donde se almacena la estructura en formato binario o hacerlo dato por dato en texto plano.

Te dejo uno de mis vídeos donde muestro como hacerlo con fwrite

« Última modificación: 26 Mayo 2016, 17:00 pm por AlbertoBSD » En línea

sebamoron86

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Crear archivo de texto y cargarlo
« Respuesta #4 en: 26 Mayo 2016, 17:44 pm »

Hola, gracias por contestar!
Tu video es genial me aclaro muchas dudas solo me quedaron dos: en el video el archivo es .db y en el modo le pusiste solo w sino me acuerdo mal asi se crea un archivo en formato texto ¿por que en vez de .db no pusiste .txt y lo abrias con un editor de texto?
Y la segunda ¿si yo lo quiero almacenar en texto plano cada vez que ingrese un lote de datos de una persona se va al archivo y se graba por cada persona y en el binario me permite ingresar diez lotes y se guarda solamente al final una sola vez?
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Crear archivo de texto y cargarlo
« Respuesta #5 en: 26 Mayo 2016, 17:50 pm »

La extensión del archivo es independiente de lo que le guardes  :silbar: :silbar: :silbar:

Me refiero puede ser un archivo TXT pero puede tener datos binaros, Lo ideal es que txt sea texto plano y nada de binario pero de poder se puede...

Ahora Sobre lo de guardar registros de uno en uno o todos al final es tu eleccion mientras lo hagas correctamente.

Por ejemplo abres el archivo antes del for o while y posteriormente dentro del ciclo agregas registros de uno en uno al archivo despues de capturarlos desde el teclado.

O puedes escribirlos al final Es independiente... y lo repito es tu eleccion como mejor se te acomode.

Lo unico que cambiaria es el numero de elementos a escribir en el fwrite.  y para leerlo necesitas fread El cual es para formato Binario.....

Si queires que se vea en texto plano tienes que usar fprintf y los formatos de cadena adecuados para cada tipo de dato y posteriormente para leer el archivo necesitas fscanf.

Saludos!
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: Crear archivo de texto y cargarlo
« Respuesta #6 en: 26 Mayo 2016, 18:30 pm »

Una cosilla, si usas fwrite para guardar datos en binario (que es el caso), es mejor abrir el archivo como binario
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Crear archivo de texto y cargarlo
« Respuesta #7 en: 26 Mayo 2016, 22:07 pm »

Aaa si cierto cuando hice el video se me paso abrirlo como binario >>> "wb"

Código
  1. file = fopen("archivo.ext","wb");

Por luego si guardas ciertos valores tendrias problemas.

Saludos
« Última modificación: 26 Mayo 2016, 22:29 pm por AlbertoBSD » En línea

sebamoron86

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Re: Crear archivo de texto y cargarlo
« Respuesta #8 en: 27 Mayo 2016, 18:50 pm »

Gracias a todos por contestar!
Quise hacerlo para texto como el fprintf pero no se como funciona
Código:
int main()
{
    int i;
    tpers persona[2];
    FILE *fpTex;
for(i=0;i<2;i++)
{
    printf("Ingrese el DNI:");
    scanf("%ld",&persona[i].dni);
    printf("El apellido y nombre :");
    fgets(persona[i].apyn,34,stdin);
    printf("Ingrese el sexo:");
    fgets(persona[i].sex,2,stdin);
    printf("Ingrese la fecha:");
    scanf("%d/%d/%d",
                        &persona[i].fec.di,
                        &persona[i].fec.me,
                        &persona[i].fec.an);
    printf("Ingrese el impuesto:");
    scanf("%f",&persona[i].impuesto);
    printf("\n");
}
fpTex=fopen("Arct.txt","wt");
if(fpTex)
{
/*fwrite(persona,sizeof(tpers),3,fpTex); si fuera binario*/
fprintf(fpTex,"%ld%s%s%d%d%d%f",persona.dni,persona.apyn,persona.sex,persona.fec.di,persona.fec.me,persona.fec.an,persona.impuesto);
fclose(fpTex);
}
    return 0;
}

Y otra cosa no se porque no me funciona el fgets de apellido nombre
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Guardar archivo index.php en vez de cargarlo :S
PHP
Cergath 8 6,024 Último mensaje 26 Junio 2009, 01:00 am
por HardieVon
Alguien save como crear archivo php igual que el archivo de texto
Windows
BrokerJoker 6 7,096 Último mensaje 17 Mayo 2012, 02:47 am
por #!drvy
Crear un archivo de texto con php
PHP
hanhgel 2 1,886 Último mensaje 7 Octubre 2013, 00:36 am
por GenR_18
Crear fichero archivo de texto en ejercicio.
Programación C/C++
BKsiragon 4 2,807 Último mensaje 28 Enero 2014, 04:41 am
por nolasco281
Duda al crear archivo de texto
GNU/Linux
JonaLamper 2 1,798 Último mensaje 18 Marzo 2015, 17:44 pm
por Reina_Negra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines