Estoy intentando leer un archivo byte a byte. A modo de experimentar sin tener conflictos con otros controles o "cosas raras", tengo un Form con un solo botón, en el que he escrito el siguiente código:
- ' gambas class file
- PUBLIC SUB _new()
- END
- PUBLIC SUB Form_Open()
- END
- PUBLIC SUB btn_Abrir_fichero_ROM_Click()
- DIM ROM_file AS file
- DIM puntero AS Integer
- DIM byte_leido AS Byte
-
- puntero = 0
-
- Dialog.Title = "Seleccione ROM a abrir."
- Dialog.Filter = ["*.rom", "Ficheros ROM", "*.rom", "Ficheros ROM", "*", "Todos los archivos"]
- Dialog.Path = User.Home
-
- IF Dialog.OpenFile() THEN
- RETURN 'Salió con cancelar...aborto.
- ENDIF
-
- ROM_file = OPEN Dialog.Path FOR INPUT
-
- WHILE TRUE
- puntero = puntero + 1
- SEEK #ROM_file, puntero 'Nos colocamos en el byte a leer
-
- IF ROM_file.EndOfFile THEN BREAK
-
- READ #ROM_file, byte_leido 'Leer byte
- WEND
-
- ROM_file.Close
- END
Sin embargo, y a pesar de que he comprobado que lee realmnete el archivo, siempre termino con un error debido a que se "pasa" del fin de archivo. El problema evidentemente reside en la linea
¿Como debería hacer para que el bucle solo lea el contenido del fichero, sin intentar avanzar más allá del final del mismo?