Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /* Estructura */
- typedef struct
- {
- char titulo[120], // Titulo de la obra.
- autor1[60], // Nombre de los
- autor2[60], // autores
- autor3[60]; // de los libros
- unsigned char disp; // Bandera que indica si está disponible o no.
- unsigned int id; // Código único que identifica cada libro.
- } unLibro;
- int main(int argc, char *argv[])
- {
- FILE * books;
- FILE * filtro;
- int file_size, i;
- unLibro bk;
- char search[120];
- books = fopen("libros.dat", "rb");
- filtro = fopen("filtro.txt", "wt");
- if(!books)
- {
- printf("Error en la ejecución, codigo 01. Error al leer el archivo ''libros.dat''\n");
- fclose(books);
- fclose(filtro);
- system("PAUSE");
- return -1;
- }
- fseek(books, 0, SEEK_END);
- file_size = ftell(books)/sizeof(unLibro);
- fseek(books, 0, SEEK_SET);
- printf("Ingrese el nombre o parte del titutlo de la obra a buscar: ");
- scanf("%s", search);
- fprintf(filtro, "Resultados de la busqueda: %s\n\n", search);
- printf("Resultados de la busqueda: %s\n\n", search);
- for(i = 0; i < file_size; i++)
- {
- fread(&bk, sizeof(unLibro), 1, books);
- if(strstr(bk.titulo, search))
- {
- fprintf(filtro, "[%d] %s: %s, %s, %s. [%s]\n", bk.id, bk.titulo, bk.autor1, bk.autor2, bk.autor3, bk.disp?"Disponible":"No disponible");
- printf("[%d] %s: %s, %s, %s. [%s]\n", bk.id, bk.titulo, bk.autor1, bk.autor2, bk.autor3, bk.disp?"Disponible":"No disponible");
- }
- }
- fclose(books);
- fclose(filtro);
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment