Autor
Tema: Ayuda para hacer una función que busque en un archivo - C (Leído 3,560 veces)
lucasxxviii
Desconectado
Mensajes: 4
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
typedef struct
{
char marca[ 50 ] ;
char modelo[ 50 ] ;
float precio;
int cantidad;
} impresora;
void imprimir_menu ( ) {
printf ( "1) Agregar Informacion de una impresora: \n " ) ; printf ( "2) Mostrar el contenidp del archivo\n " ) ; printf ( "3) Busqueda de impresoras por marca y precio \n " ) ; printf ( "4) Salir del programa\n " ) ;
}
void agregar_impresora( ) {
impresora imp;
FILE * miarchivo;
char * nombrearchivo = "Problema2.txt" ;
miarchivo
= fopen ( nombrearchivo
, "a" ) ; // agrega al final
if ( miarchivo== NULL) return - 1 ;
printf ( "\n \n \t ....Informacion de impresora....: \n \n " ) ;
scanf ( "%[^\n ]" ,& imp.
marca ) ; fprintf ( miarchivo
, "Marca: %s\n " , imp.
marca ) ;
printf ( "Ingrese el Modelo: " ) ; scanf ( "%[^\n ]" ,& imp.
modelo ) ; fprintf ( miarchivo
, "Modelo: %s\n " , imp.
modelo ) ;
printf ( "Ingrese el Precio: " ) ; fprintf ( miarchivo
, "Precio:$ %2.f\n " , imp.
precio ) ;
printf ( "Ingrese la Cantidad: " ) ; scanf ( "%d" ,& imp.
cantidad ) ; fprintf ( miarchivo
, "Cantidad:%d\n \n \n " , imp.
cantidad ) ;
}
/*void mostrar_impresora(){
FILE* miarchivo;
char* nombrearchivo="Problema2.txt" ;
char nombretemp[50];
int termino=0;
miarchivo = fopen(nombrearchivo,"r");
if (miarchivo==NULL) return -1;
printf("Lista de Impresoras: \n");
termino=fscanf(miarchivo, " %[^\n]",&nombretemp);
// fcanf devuelve EOF si esta al final de archivo
while(termino!=EOF){
printf("%s\n",nombretemp);
termino=fscanf(miarchivo, " %[^\n]",&nombretemp);
}
fclose(miarchivo);
}*/
void mostrar_impresora( ) {
FILE * miarchivo;
int c;
char direccion[ ] = "Problema2.txt" ;
miarchivo
= fopen ( direccion
, "r" ) ; //r = read - leer
if ( miarchivo == NULL) {
printf ( "Error al tratar de leer el archivo" ) ; return - 1 ;
}
while ( ( c
= fgetc ( miarchivo
) ) != EOF
) { if ( c == '\n ' ) {
}
else {
}
}
}
void buscar_impresora( ) {
}
int main( ) {
int salir= 0 ;
int opcion;
while ( salir== 0 ) {
opcion=- 1 ;
imprimir_menu( ) ;
if ( opcion== 4 ) salir= 1 ;
if ( opcion== 1 ) agregar_impresora( ) ;
if ( opcion== 2 ) mostrar_impresora( ) ;
if ( opcion== 3 ) buscar_impresora( ) ;
}
return 0 ;
}
No puedo hacer la funcion de buscar necesito que realice esta condicion: * busqueda de impresora por marca y precio, (en esta opcion se debe ingresar una marca y dos numeros reales, luego mostrar todos los datos de la impresoras en donde exista coincidencia con la marca y los precios deben estar comprendidos entre los dos numeros ingresados. desde ya muchas gracias al que me pueda ayudar.
En línea
MAFUS
Desconectado
Mensajes: 1.603
No hagas el archivo en modo texto, hazlo binario. Introduce los datos tal y como están en la estructura sin añadidos como Marca: , Modelo: , etc. Así los podrás sacar directamente y cargar una estructura cuándo los leas. De esta forma podrás comparar los datos que quieras con la estructura que habrás rellenado.
En línea
lucasxxviii
Desconectado
Mensajes: 4
Si comprendo que puedo hacer la busqueda con el archivo en binario, pero justo este enunciado me pide que sea .txt y no entiendo como puedo realizar esa busqueda. Gracias
En línea
MAFUS
Desconectado
Mensajes: 1.603
Parecido: cargas cada dato de la estructura en modo texto con fprintf, pon un carácter de retorno de carro. A la hora de leer cargas los datos a la estructura convirtiéndolos a los que necesites mediante sscanf. Una vez que tienes la estructura cargada comparas los datos que necesitas.
En línea
lucasxxviii
Desconectado
Mensajes: 4
Disculpa mi ignorancia se programar pero basico por ahora, me podrias explicar o mostrarme un ejemplo si no es mucha molestia, gracias por la ayudad.
En línea
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
Hola. Te dejo unos videos que he hecho al respecto:VIDEO VIDEO Saludos!
En línea
lucasxxviii
Desconectado
Mensajes: 4
Muchas gracias por la ayuda.
En línea
Mensajes similares
Asunto
Iniciado por
Respuestas
Vistas
Último mensaje
Ayuda... Repetir funcion hasta el final del archivo
« 1 2 »
Programación Visual Basic
apexseal
10
5,520
19 Agosto 2012, 23:24 pm
por apexseal
Batch que busque un archivo y lo ejecute y ejecutar combinaciones del teclado...
Scripting
Dsalomon
9
8,949
3 Septiembre 2012, 10:41 am
por Dsalomon
funcion para eliminar solo archivo sin el directorio
Desarrollo Web
JRO1384
2
2,391
28 Octubre 2013, 20:07 pm
por Shell Root
¿Ayuda no logro hacer función en c ?
Programación C/C++
lucas59
1
1,793
18 Mayo 2014, 18:48 pm
por Caster
¿Hay alguna funcion para evitar que un archivo se cierre?
Programación General
scott_
7
4,216
10 Abril 2015, 05:04 am
por Eleкtro