Hola.
Me quedé pensando si lo que buscas no será modificar un archivo de texto existente y estás confundido con la funcionalidad del procedimiento
Rewrite.
Al ser estos archivos de acceso secuencial sólamente te quedaría leer sobre el archivo origen, realizar los cambios, guardarlos en otro archivo destino y al finalizar, borrar el primero y renombrar el último como el primero.
Para darte una idea te pongo un ejemplo que numera cada línea de un archivo de texto:
Código Delphi
[-]
procedure NumerarLineas(AName: string);
var
Ori,Des: TextFile;
Cont: Integer;
TempName: string;
Linea: string;
begin
AssignFile(Ori, AName);
AssignFile(Des, ExtractFileName(AName)+'@@@@'+ExtractFileExt(AName));
Reset(Ori);
Rewrite(Des);
Cont:= 0;
while not eof(Ori) do
begin
Readln(Ori, Linea);
Insert(IntToStr(Cont)+ ') ', Linea, 1);
Writeln(Des, Linea);
Inc(Cont);
end;
CloseFile(Ori);
CloseFile(Des);
Erase(Ori);
Rename(Des,AName);
end;
Llamada:
Código Delphi
[-]
NumerarLineas('C:\ARCHIVO.TXT');
Ahora vamos a hacer lo mismo del modo que te sugiere
roman:
Código Delphi
[-]
procedure NumerarLineas(AName: string);
var
TS: TStrings;
Cont: Integer;
s: string;
begin
TS:= TStringList.Create;
try
TS.LoadFromFile(Aname);
for Cont:= 0 to TS.Count -1 do
begin
s:= TS[Cont];
Insert(IntToStr(Cont+1)+')', s, 1);
TS[Cont]:= s;
end;
TS.SaveToFile(AName);
finally
TS.Free;
end;
end;
Mirá que sencillo ! ¿ Cuál es el inconveniente de hacerlo de esa forma ?, no tendrías que alterar tu código en absoluto.
Saludos.