Autor
|
Tema: Cómo leer número de un txt. (Leído 3,027 veces)
|
Wilber592
Desconectado
Mensajes: 9
|
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
Mensajes: 50
|
Por que usar un archivo de texto para leer informacion? 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
Mensajes: 3.705
🏴 Libertad!!!!!
|
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
Mensajes: 634
youtu.be/0YhflLRE-DA
|
Bueno la solucion esta en la teoria busca esto en tus apuntes o en internet "Archivos en C. Apertura" 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
Mensajes: 9
|
Por que usar un archivo de texto para leer informacion? 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
Mensajes: 9
|
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
Mensajes: 50
|
cout << "Leyendo archivo ejemplo.txt" << endl; ifstream archivoQueLeer; //declaramos variable que representa nuestro archivo a leer archivoQueLeer.open("ejemplo.txt"); //ponemos el nombre del archivo, asumimos que el objetivo esta en la misma carpeta char contenido[100]; //definimos lo que sera el contenido una vez abierto el archivo if (archivoQueLeer.is_open()) { //nos aseguramos que hemos abierto el archivo de manera satisfactoria while (!archivoQueLeer.eof()) { //siempre que no hallamos llegado al final del archivo... archivoQueLeer >> contenido; //leemos el archivo y asignamos el valor a nuestra primera variable cout << contenido; //imprimimos el valor } } archivoQueLeer.close(); // cerramos el fichero de forma que no tengamos problemas en el futuro
|
|
|
En línea
|
|
|
|
Wilber592
Desconectado
Mensajes: 9
|
cout << "Leyendo archivo ejemplo.txt" << endl; ifstream archivoQueLeer; //declaramos variable que representa nuestro archivo a leer archivoQueLeer.open("ejemplo.txt"); //ponemos el nombre del archivo, asumimos que el objetivo esta en la misma carpeta char contenido[100]; //definimos lo que sera el contenido una vez abierto el archivo if (archivoQueLeer.is_open()) { //nos aseguramos que hemos abierto el archivo de manera satisfactoria while (!archivoQueLeer.eof()) { //siempre que no hallamos llegado al final del archivo... archivoQueLeer >> contenido; //leemos el archivo y asignamos el valor a nuestra primera variable cout << contenido; //imprimimos el valor } } archivoQueLeer.close(); // cerramos el fichero de forma que no tengamos problemas en el futuro
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
Mensajes: 3.705
🏴 Libertad!!!!!
|
Un ejemplo en C #include<stdlib.h> #include<stdio.h> int main() { int numero; char temporal[20]; FILE *archivo; archivo = fopen("archivo.txt","r"); while(!feof(archivo )) {// Esto se lee "mientras (while) no (!) sea el fin del archivo( END OF FILE feof (archivo)) hacer" fgets(temporal ,20,archivo );// Leemos hasta encontrar un enter o un limite de 20 Caracteres suficientes para un numero... numero = strtol(temporal ,NULL ,10); //Solo procesamos numeros BASE 10 printf("Dato leido %i\n",numero ); } }
|
|
|
En línea
|
|
|
|
Wilber592
Desconectado
Mensajes: 9
|
Un ejemplo en C #include<stdlib.h> #include<stdio.h> int main() { int numero; char temporal[20]; FILE *archivo; archivo = fopen("archivo.txt","r"); while(!feof(archivo )) {// Esto se lee "mientras (while) no (!) sea el fin del archivo( END OF FILE feof (archivo)) hacer" fgets(temporal ,20,archivo );// Leemos hasta encontrar un enter o un limite de 20 Caracteres suficientes para un numero... numero = strtol(temporal ,NULL ,10); //Solo procesamos numeros BASE 10 printf("Dato leido %i\n",numero ); } }
Mira lo que llevo #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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Leer numero seguido de carácter
Programación C/C++
|
eleon
|
6
|
3,703
|
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,749
|
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,794
|
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,672
|
18 Abril 2016, 18:23 pm
por wolfbcn
|
|
|
Leer un numero muy grande
Programación C/C++
|
mendez1415
|
1
|
2,061
|
26 Noviembre 2016, 18:07 pm
por engel lex
|
|