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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cómo leer número de un txt.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo leer número de un txt.  (Leído 988 veces)
Wilber592

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Cómo leer número de un txt.
« en: 22 Noviembre 2018, 00:34 am »

Buenas tardes amigos, tengo un proyecto, y este habla sobre una abarrotes, dónde hay 3 archivos 1 para facturas otro para "inventario" y otro para clientes.

Resulta que el de inventario, debe cargar información cada que se cierre el programa así la próxima vez que se abra, mantenga los datos anteriores hasta agotar existencias.

Y no puedo o no sé cómo extraer numeros de los txt, ayuda porfavor


En línea

FranFin

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #1 en: 22 Noviembre 2018, 00:36 am »

Por que usar un archivo de texto para leer informacion?  :huh:
Puedes leer los bytes del archivo y esperar tener suerte y que no haya sido modificado por lo que sea, de esa forma puedes leer el numero que quieres.


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.586


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Cómo leer número de un txt.
« Respuesta #2 en: 22 Noviembre 2018, 00:42 am »

Hay que tener varias consideraciones, para empezar saber distinguir si el archivo esta guardado como texto o en formato binario.

Apartir de ahi hay varias cosas que ver.

Si es modo texto, buscar la estrucura y orden de los datos guardados y leerlos en formato de texto y convertir los necesarios a  datos enteros, flotantes etc. ejemplo fgets + strtol, strtof etc...

Si es modo binario, lo mismo buscar la estrucura y orden de los datos guardados, y leerlo en formato directo a una estrucutra de datos ejemplo fread(&dato1,...

Si me mandas los archivos yo te escribo el programa para leer los datos y mostrarlos en pantalla.

Saludos
En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
Beginner Web


Desconectado Desconectado

Mensajes: 563


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #3 en: 22 Noviembre 2018, 02:26 am »

Bueno la solucion esta en la teoria busca esto en tus apuntes o en internet "Archivos en C. Apertura"
Código
  1. puntero_archivo=fopen("ruta_archivo","modo_apertura");
Y con respecto a los numeros depende la estructura que hayas elegido, si es una struct, habras guardado un archivo de structs por lo tanto a la hora de modificar/extraer esos numeros lo haces leyendo secuencialmente el archivo y sacas la estructura que te interesa y modificas el campo donde contiene numeros, es solo un ejemplo

« Última modificación: 22 Noviembre 2018, 02:29 am por Beginner Web » En línea

{_id: "5ef16999f6ce240abc225ss3",
nombre: "Ana Keldysh",
nacionalidad: "Argentina",
edad: "17",
profesion: "Desarrollador Web Full Stack, pero la verdad hago de todo.",
"__v": 0
}
Wilber592

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #4 en: 22 Noviembre 2018, 14:49 pm »

Por que usar un archivo de texto para leer informacion?  :huh:
Puedes leer los bytes del archivo y esperar tener suerte y que no haya sido modificado por lo que sea, de esa forma puedes leer el numero que quieres.
[/quote

Esque de hecho podemos usar el archivo que deseemos, la estructura para abrirlo, si puedo usarlo, lo que me cuesta es extraer los datos]
En línea

Wilber592

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #5 en: 22 Noviembre 2018, 14:53 pm »

Hay que tener varias consideraciones, para empezar saber distinguir si el archivo esta guardado como texto o en formato binario.

Apartir de ahi hay varias cosas que ver.

Si es modo texto, buscar la estrucura y orden de los datos guardados y leerlos en formato de texto y convertir los necesarios a  datos enteros, flotantes etc. ejemplo fgets + strtol, strtof etc...

Si es modo binario, lo mismo buscar la estrucura y orden de los datos guardados, y leerlo en formato directo a una estrucutra de datos ejemplo fread(&dato1,...

Si me mandas los archivos yo te escribo el programa para leer los datos y mostrarlos en pantalla.

Saludos

Hola! Saludos gracias por tu comentario, y fíjate que si, en realidad tienes mucha razón por ejemplo con respecto a los archivos, este es así;

Archivo 1 debe tener solo números, dónde se sea el stock de manzanas, peras, pan, piña,chicle. Según el catedrático no debe llevar mucha ciencia, que podemos leer los números y almacenarlos en un vector y ya después en el vector ponerle un nombre,.

Ahora en los otros archivos, es solo introducción de datos por ejemplo datos de comprador y en el otro la factura
En línea

FranFin

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #6 en: 22 Noviembre 2018, 15:06 pm »

Código
  1. cout << "Leyendo archivo ejemplo.txt" << endl;
  2.  
  3. ifstream archivoQueLeer; //declaramos variable que representa nuestro archivo a leer
  4.  
  5. archivoQueLeer.open("ejemplo.txt"); //ponemos el nombre del archivo, asumimos que el objetivo esta en la misma carpeta
  6.  
  7. char contenido[100]; //definimos lo que sera el contenido una vez abierto el archivo
  8. if (archivoQueLeer.is_open()) { //nos aseguramos que hemos abierto el archivo de manera satisfactoria
  9. while (!archivoQueLeer.eof()) { //siempre que no hallamos llegado al final del archivo...
  10. archivoQueLeer >> contenido; //leemos el archivo y asignamos el valor a nuestra primera variable
  11. cout << contenido; //imprimimos el valor
  12. }
  13. }
  14. archivoQueLeer.close(); // cerramos el fichero de forma que no tengamos problemas en el futuro
  15.  
En línea

Wilber592

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #7 en: 22 Noviembre 2018, 17:45 pm »

Código
  1. cout << "Leyendo archivo ejemplo.txt" << endl;
  2.  
  3. ifstream archivoQueLeer; //declaramos variable que representa nuestro archivo a leer
  4.  
  5. archivoQueLeer.open("ejemplo.txt"); //ponemos el nombre del archivo, asumimos que el objetivo esta en la misma carpeta
  6.  
  7. char contenido[100]; //definimos lo que sera el contenido una vez abierto el archivo
  8. if (archivoQueLeer.is_open()) { //nos aseguramos que hemos abierto el archivo de manera satisfactoria
  9. while (!archivoQueLeer.eof()) { //siempre que no hallamos llegado al final del archivo...
  10. archivoQueLeer >> contenido; //leemos el archivo y asignamos el valor a nuestra primera variable
  11. cout << contenido; //imprimimos el valor
  12. }
  13. }
  14. archivoQueLeer.close(); // cerramos el fichero de forma que no tengamos problemas en el futuro
  15.  
Amigo yo trabajo en c y realmente si te entendí la mayoría de que me recomendaste, pero precisamente la parte del while no sé cómo hacerla podrías detallarme algo porfavor
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.586


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Cómo leer número de un txt.
« Respuesta #8 en: 22 Noviembre 2018, 18:23 pm »

Un ejemplo en C

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. int main() {
  5. int numero;
  6. char temporal[20];
  7. FILE *archivo;
  8. archivo = fopen("archivo.txt","r");
  9. while(!feof(archivo)) {// Esto se lee "mientras (while) no (!) sea el fin del archivo( END OF FILE feof (archivo))  hacer"
  10. fgets(temporal,20,archivo);// Leemos hasta encontrar un enter o un limite de 20 Caracteres suficientes para un numero...
  11. numero = strtol(temporal,NULL,10); //Solo procesamos numeros BASE 10
  12. printf("Dato leido %i\n",numero);
  13. }
  14. }
  15.  
En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
Wilber592

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Cómo leer número de un txt.
« Respuesta #9 en: 22 Noviembre 2018, 18:48 pm »

Un ejemplo en C

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. int main() {
  5. int numero;
  6. char temporal[20];
  7. FILE *archivo;
  8. archivo = fopen("archivo.txt","r");
  9. while(!feof(archivo)) {// Esto se lee "mientras (while) no (!) sea el fin del archivo( END OF FILE feof (archivo))  hacer"
  10. fgets(temporal,20,archivo);// Leemos hasta encontrar un enter o un limite de 20 Caracteres suficientes para un numero...
  11. numero = strtol(temporal,NULL,10); //Solo procesamos numeros BASE 10
  12. printf("Dato leido %i\n",numero);
  13. }
  14. }
  15.  
Mira lo que llevo
Código:
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
FILE *cliente;
FILE *inventario;



struct cliente{
    char nombre[20];
    int nit;
    int compra;
}id;



int factura()
{
    system("CLS");
    int item;

    printf("\t\t\t.::.FACTURACION.::.");
    printf("\n\n\n\tNOMBRE:");
    scanf("%s",&id.nombre);
    printf("\n\tNIT:");
    scanf("%d",&id.nit);
    //leyendo archivo
    inventario=fopen("inventario.txt","r");
    if(inventario==NULL)
    {
        printf("Error al Leer inventario");
    }
    while((item=fgetc(inventario))!=EOF)
    {
        if(item=='\n')
        {
            printf("\n");
        }
        else{
            putchar(item);
        }
    }

    fclose(inventario);

    cliente=fopen("usuario.txt","a+");
    if (cliente==NULL)
    {
        printf("No se puede crear datos de Cliente");
    }
}



void datos()
{
    int item[5];
    printf("a continuacion con cada intro podra ingresar solo cantidades, en el orden siguiente \nmanzanas\nperas\npan\pinha\nchicle\n");
    inventario=fopen("inventario.txt","w");
    if (inventario==NULL)
    {
        printf("El archivo esta Da񡤯");
    }
    //Guardar Datos
    for(int i=0;i<5;i++)
    {
        scanf("\n%d",&item[i]);
        fputc(item[i],inventario);
    }
//Verificar datos Guardados
    for(int e=0;e<5;e++)
    {
        fscanf(inventario,"%d",&item[e]);
        printf("\n%d",item[e]);
    }

    fclose(inventario);
}

int leer()
{
   /* int item[5];
    inventario=fopen("inventario.txt","r");
    if(inventario==NULL)
    {
        printf("NO SE PUEDE LEER");
    }

    while(inventario!=EOF)
    {
        for(int i=0;i<5;i++){
        fscanf(inventario,"%c",item[i]);
        printf("%d",item[i]);
    }
    fclose(inventario);
}
*/
int numero;
char temporal[20];
inventario=fopen("inventario.txt","r");
while(!feof(inventario))
{
    fgets(temporal,20,inventario);
    numero=strtol(temporal,NULL,10);
    printf("dato leido %i\n",numero);
}
fclose(inventario);
}

int main()
{
    int op;
    do{
        printf("\n\t.:MENU:.\n");
        printf("\n\n1.Introducir Datos.");
        printf("\n2.Facturar");
        printf("\n3.Ver clientes");
        printf("\n4.Salir");
        printf("\n\nOpcion:");
        scanf("%d",&op);
        switch(op)
        {
        case 1: datos();break;
        case 2: factura();break;
        case 3: leer();break;

        }
    }
    while(op!=4);
    return 0;
}
[\code]

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