Realmente trabajar con archivos de texto para diseñar un ABM en el 2015...
Y que pasa si guardas la informacion como si fueran registros. Que el archivo de texto te quede asi, literalmente
Código Delphi
[-]
FILESTART: PERSONAS
Codigo: ABC123
Nombre: Pepe
Domicilio: Calle 123
Localidad: Una ciudad
# Codigo: DEF456
Nombre: Carlos
Domicilio: Calle 456
Localidad: Otra ciudad
#
FILEEND
Podes laburar con un TStringList? Sino con el Readln y Writeln tambien puede servir, pero me gusta mas TStringList.
Vas leyendo hasta FILEEND, y en cada "#" significa que cambiaste de persona y ya tenes sus datos. Yo los cargaria en un tipo Record para que al menos tengas una estructura en la que puedas acceder por campo.
Desde una lista o array manejar la informacion creo que es mucho mas comodo que el archivo, tomalo como estas usando una transaccion, y el commit seria usar como indice los campos "inicio" y "fin" y grabar ahi los cambios
Saludos