Programación General => C/C++ => Mensaje iniciado por: Flais en Lunes 19 de Septiembre de 2005, 09:27
Título: Estructura De Archivos. Buscar
Publicado por: Flais en Lunes 19 de Septiembre de 2005, 09:27
HOLA :P SOY PRINCIPIANTE EN ESTO DE PROGRAMAR Y TENGO UN PEQUEÑO PROBLEMA HICE UN CODIGO EN C. PARA CREAR UN ARCHIVO. ALMACENAR Y MOSTRAR.. AHORA ESSTOY EN BUSCAR. PERO TENGO PROBLEMAS.. NO SE QUE ME FALTA SEGUN YO ESTOS SON LOS PASOS SOLICITAR NOMBRE A BUSCAR ABRIR ARCHIVO HACER CICLO WHILE !=eof leer registro comparar las cadenas regresar informacion. si o no se encontro.. aqui esta el codigo.. ojala puedan ayudarme
if(opc==3) /*BUSCAR*/ { printf("Dame el nombre a buscar"); scanf("%s",&x.buscar); fd=open("dato.txt",0); if(fd<0) printf("\n NO EXISTE ARCHIVO"); else do while(!eof(fd))
i=0; do { read(fd,&x.nombre,1); if(x.nombre !='|'&&x.nombre!='\n'&&!eof (fd)) i++; else break; } while (x.nombre[i-1]!='|'&&x.nombre[i-1]!='\n'&&!eof (fd)); } if(strcmp(x.nombre,x.buscar)==0) { x.nombre='\0'; printf("\n Nombre:"); write (1,&x.nombre,i); } else { printf("NO SE ENCONTRO EL Registro"); close (fd); getch(); } }
gracias
Título: Re: Estructura De Archivos. Buscar
Publicado por: patitofeo en Martes 20 de Septiembre de 2005, 14:15
Bueno, no se si me equivoco en algo pero...
¿esto que es?
Código: Text
do
while(!eof(fd))
no tiene sentido, es un bucle que no hace nada y que te dejará el programa colgado si el fichero está vacio.
Según veo yo el codigo, solo comprobaras el primer registro, ya que no tienes realmente creado un bucle.
Cuando encuentres un caracter de separacion '|' o '\n' compararas el nombre leido.