El problema es que el tipo base de un tipo
file debe tener una longitud fija. De lo contrario los procedimientos Read y Write no sabrían qué tanto deben leer o escribir. Por tanto, el tipo base no puede tener ni cadenas (string, widestring), ni apuntadores, ni arreglos dinámicos, etc.
En su lugar, deberías usar archivos
sin tipo:
y usar los procedimientos BlockRead y BlockWrite. O bien, usar estructuras más modernas como la clase TFileStream.
Bye