<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Hola estoy buscando un campo por un registro que es I01 y lo he pasado a cadena y me sacan tambien los campos I011 e I010<br><br>Aqui esta el codigo. que estoy haciendo mal?<br><br>void consultas_ID(void)<br>{<br> canal_habitacion=fopen(FICHERO_HABITACION,"rb"); // Si el archivo no existe informa del error e interrumple el programa<br><br> if(canal_habitacion==NULL)<br> {<br> printf("\n\nERROR\t El archivo 'HABITACIOIN.DAT' no existe o no se puede acceder a el.");<br> getch();<br> exit(0);<br> }<br> fclose(canal_habitacion);<br> canal_habitacion=fopen(FICHERO_HABITACION,"r+b"); //Abre el archivo en modo lectura-escritura binaria<br> fseek(canal_habitacion,0L,0); //Me situlo al princio;<br> fread(®istrohab, sizeof(registrohab),1,canal_habitacion); //Leo el archivo con el molde "indice"<br> N=registrohab.num_registro;<br><br> if(N==0){<br> //Si el archivo esta vacio informa del error e interrumpe el programa<br> printf("\nERROR\tEL archivo 'HABITACION.DAT' esta vacio");<br> getch();<br> exit(0);<br> }<br> do{<br> clrscr();<br> printf("\nIntroduzca el ID_HABITACION del contacto que desea visualizar => ");<br> fflush(stdin);<br> gets(buscarID); //Lee el nombre introducido por el usuario<br><br> sw=0;<br><br> for(int i=1; i<=N; i++) //Bucle que recorre el archivo<br> {<br> desplazamiento = i*sizeof(habit); //saltando de 32 en 32 bytes.<br> fseek(canal_habitacion,desplazamiento,0); //me situo<br> fread(&habit, sizeof(habit),1,canal_habitacion);<br> if(strncmp(habit.id_habitacion, buscarID, strlen(buscarID))==0)<br> {<br> if(habit.id_habitacion[0]=='I')<br> {<br> printf("\n*******************************************\n");<br> printf("\n\t TIPO HABITACION : INDIVIDUAL ");<br> printf("\n\t ID HABITACION %s",habit.hindividual.id_habitacion);<br> printf("\n\t Precio %3.2f",habit.hindividual.precio);<br> printf("\n\t Estado: %s",habit.hindividual.estado);<br> printf("\n\t Nº HABITACIONES: %d",habit.hindividual.NUM_INDI);<br> printf("\n*******************************************\n\n");<br> getch();<br> }<br> if(habit.id_habitacion[0]=='D')<br> {<br> printf("\n*******************************************\n");<br> printf("\n\t TIPO HABITACION : DOBLE ");<br> printf("\n\t ID HABITACION %s",habit.hbdoble.id_habitacion);<br> printf("\n\t Precio %3.2f",habit.hbdoble.precio);<br> printf("\n\t Estado: %s",habit.hbdoble.esta);<br> printf("\n\t Nº HABITACIONES: %d",habit.hbdoble.NUM_DBL);<br> printf("\n*******************************************\n\n");<br> getch();<br><br> }<br><br> sw=1;<br> }<br> }<br> if(!sw)<br> {<br> printf("\n\aERROR\tLa entrada %s no se encuentra en el fichero:");<br> }<br> printf("\n\n\t¿Quieres consultar otro contacto (s/n)? =>");<br> fflush(stdin);<br> }while(getchar()=='s');<br><br> fclose(canal_habitacion);<br><br>}<br><br> </div></body>
</html>