Ver Mensaje Individual
  #1  
Antiguo 03-08-2013
Novatin Novatin is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 61
Reputación: 12
Novatin Va por buen camino
Ayuda con Comparaciones simultaneas en Pascal

Que tal amigos...

Estoy aprendiendo sobre archivos binarios en Pascal y tengo un problema a momento de usar el "IF"...el codigo simplificado es asi:

Código:
Archivo : File of Byte;
B1,B2,B3 : Byte;
...
while not eof(Archivo) Do
begin

   Read(B1);
   Read(B2);
   Read(B3);
   
   IF ((B1 = 0) and (B2 = 0) and (B3 = $F3)) or eof(Archivo) then
       close(Archivo);
   WriteLn(B1,B2,B3);
end;
Pero tal parece que la instruccion IF no me funciona correctamente, es decir nunca llega a cerrar el archivo y siempre acaba con un disk ioread error...

Ah en los archivos binarios tengo datos agrupados de a 3 bytes, terminados con 00 00 F3 al final... de la siguiente manera:

"00 12 90 A3 F9 40 12 00 23 00 00 F3"

Lo extraño es que en C++ me funciona correctamente, con la instruccion equivalente...

Código:
...
IF ((B1 == 0) && (B2==0) && (B3==0xF3)) or (feof(Archivo))
   fclose(Archivo);
...
Hay algo que me falta en la comparacion simultanea de varios IF de Pascal??
o debería leer los archivos de otro modo??

Gracias de antemono por su ayuda...

Saludos.
Responder Con Cita