Bueno, me he puesto a practicar un poco con esto de bytes y demás.
No se si ya existe algún paquete que lo implemente (seguramente sí), pero si a alguien le interesa, o no encuentra, aquí está mi versión.
http://eld.iespana.es/d_byte.zipSi da error 404, id a
http://eld.iespana.es/y bajaros el archivo d_byte.zip
Basicamente trae lo siguiente:
- Posibilidad de crear y modificar bytes y bits.
- Operaciones entre bytes y bits: crear bytes a partir de bits, modificar determinados bits de un byte, ver los bits de un byte.
- Conversión entre bytes y enteros (de 0 a 255), conversión entre bytes y carácteres, conversión entre btts y enteros (0 o 1). Viceversa también, evidentemente.
- Manejo de ficheros directos y secuenciales de bytes.
Realmente solo uso Direct_IO, que permite tratar los ficheros tanto de forma secuencial como directa

Se incluye el tipo "Fichero binario" que sustituye a File_Type (también se puede instanciar direct_io o sequential_io con el tipo byte, pero ya que lo implemento...

).
- In/out: implementadas todas las operaciones de direct_IO para los bytes. Había un parámetro "form" que no sabía para que servía y lo he quitado

se usa exactamente igual que antes: open, read, write, close, etc.
- Soporte de excepciones: copiadas de direct_IO
- No requiere instanciación ni cosas raras. Se hace un with/use de d_byte en vuestro programa y a usarlo sin problemas.
Dado que uso las operaciones de direct_IO y demás, al final hice el paquete en inglés. Me parecía un poco cutre hacer "open(Fichero_binario,Modo,Ruta)" e ir mezclando algunas cosas en inglés y en castellano. Para mí o todo en castellano (excepto la sintaxis de ada, evidentemente) o todo en inglés. Mis conocimientos de la lengua de Shakespeare tampoco son muy grandes, así que seguro que tengo varias faltas de ortografía

Comentarios con precondition y postcondition. Como ya dije en el otro post, quiero practicar este sistema de comentarios.
Tiene un par de ejemplos, un programa que copia un archivo de un lugar a otro y otro programa que cifra un archivo mediante el método cesar (muy cutre, pero sencillo para ver como funciona).
También estoy realizando la documentación del TAD (ya se, esto se tiene que hacer antes

) pero me gustaría que fueseis mirandolo y me dijearais si veis fallos, si no os gusta, si lo hubierais hecho de otra forma, etc.
Lo dicho, espero que le sirva a alguien. Supongo que ya habrá implementaciones de bytes y bits, seguramente más completas que esta, pero quería practicar un poco (y lo necesito para un proyecto "secreto" que tengo en mente

).