Archivo de texto que almacene bloques en ANSI C

Iniciado por javier_programing, 14 Septiembre 2015, 19:57 PM

0 Miembros y 1 Visitante están viendo este tema.

javier_programing

Hola buenas, necesito crear un archivo de texto de un tamaño determinado y separar al mismo en bloques cuando le escriba algo menor al tamaño del bloque lo lleno con algo que me permita reconocer lo que escribi. El tema esta ahi en que nose como hacer para "particionar" el archivo. Una vez con estos bloques la idea es hacerme una funcion que al decirle el nro de bloque me de el contenido. La asignacion seria contigua asi que no habria mayor problema, desde ya muchas gracias, cualquier ayuda va a ser de mucha utilidad.

ivancea96

Podrías tener un índice. Te propongo un formato, que te permite tener bloques de tamaños indefinidos:

<numero de bloques (INT 4 bytes) />
<tamaño del bloque 1(INT 4 bytes) />
<posicion en el archivo del bloque 1 (en bytes) (INT 4 bytes) />
<tamaño del bloque N (INT 4 bytes) />
<posicion en el archivo del bloque N (INT 4 bytes) />
<...>
<bloque 1 />
<bloque n />
<...>


Si los bloques son de, por ejemplo, 256 bytes, puedes hacer:
<bloque 1>
    <bytes del bloque (CHAR 1 byte) />
    <datos>
</bloque 1>
<bloque 2>
    ...
</bloque 2>


Si no te gustan esos formatos, haz otro que esté acorde a lo que buscas.