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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  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 2,529 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.696


🏴 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

Beginner Web


Desconectado Desconectado

Mensajes: 634


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

7w7
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.696


🏴 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

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:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Leer numero seguido de carácter
Programación C/C++
eleon 6 3,164 Último mensaje 29 Septiembre 2012, 15:26 pm
por leosansan
Problema al intentar leer un texto y decir el numero de palabras que hay repes.. « 1 2 »
.NET (C#, VB.NET, ASP)
z3nth10n 18 7,044 Último mensaje 14 Junio 2013, 22:37 pm
por Eleкtro
[C++] ¿Cómo consigo leer un número indefinido de caracteres? « 1 2 »
Programación C/C++
HijoDePuta 10 12,124 Último mensaje 9 Agosto 2013, 13:17 pm
por za.asi
Si saben el número de teléfono, pueden escuchar las llamadas o leer los mensajes
Noticias
wolfbcn 0 1,359 Último mensaje 18 Abril 2016, 18:23 pm
por wolfbcn
Leer un numero muy grande
Programación C/C++
mendez1415 1 1,812 Último mensaje 26 Noviembre 2016, 18:07 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines