Le veo un fallo, no recorres todo el archivo mediante EOF leyenda línea por línea, debería el codigo tener un estilo al siguiente:
Mientras no finalize la lectura del archivo, se va colocando la información en "Datos". En tu caso, has utilizado el EOF pero haciendo una asignación que no le veo sentido.
Código (pascal) [Seleccionar]
WHILE NOT EOF(Archivo) DO
BEGIN
ReadLn(Archivo, Datos);
WriteLn(Datos);
END;
Mientras no finalize la lectura del archivo, se va colocando la información en "Datos". En tu caso, has utilizado el EOF pero haciendo una asignación que no le veo sentido.