Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Ayuda con Comparaciones simultaneas en Pascal (https://www.clubdelphi.com/foros/showthread.php?t=83834)

Novatin 03-08-2013 17:50:11

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.

ecfisa 03-08-2013 18:54:50

Hola Novatin.

La comparación es correcta. Lo único que noto en tu código es que debería ser:
Código Delphi [-]
  ...
  Read(Archivo, B1);
  Read(Archivo, B2);
  Read(Archivo, B3);
  ...

Saludos. :)

Novatin 04-08-2013 17:59:17

Gracias ecfisa...

Me salvaste esta... (y las otras :rolleyes:)

un saludo.


La franja horaria es GMT +2. Ahora son las 11:40:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi