Hola gmontes.
No tengo muy en claro como se seleccionan los archivos y algún detalle más.
Pero, a ver se me ocurre, para respetar el viejo formato usar un
TStringGrid
con tres columnas, poner
FixedCols y
FixedRows a False y cargar en la primera
columna el texto hasta encontrar el caracter '[' y en la tercera columna el resto de la cadena a
partir del caracter ']', quedando la segunda para el ingreso.
También habría que prohibir que se posicionen en la primera y tercera columna.
Hice una pequeña prueba, sin comprobaciones del tipo y cantidad de caracteres que pueden
ingresar por ejemplo.Y por supuesto sin impresión. (es sólo un bosquejo)
El ejemplo genera un archivo 'PRUEBA.TXT' donde quedan guardadas las líneas con lo tipeado por el usuario.
Código Delphi
[-]
...
implementation
procedure TForm1.StrGrdSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
CanSelect:= ACol = 1;
end;
procedure TForm1.btAbrirClick(Sender: TObject);
var
txt: TextFile;
lin: Integer;
st: string;
begin
if OpenDialog1.Execute then
begin
AssignFile(txt,OpenDialog1.FileName);
Reset(txt);
lin:= 0;
while not Eof(txt) do
begin
ReadLn(txt,st);
StrGrd.Cells[0,lin]:= Copy(st,1,Pos('[',st));
StrGrd.Cells[2,lin]:= Copy(st,Pos(']',st),Length(st));
Inc(lin);
end;
CloseFile(txt);
StrGrd.Row:=0; StrGrd.Col:=1;
end;
end;
procedure TForm1.btGuardarClick(Sender: TObject);
var
txt: TextFile;
i: Integer;
begin
AssignFile(txt,'C:\TEMP\PRUEBA.TXT');
Rewrite(txt);
for i:= 0 to StrGrd.RowCount-1 do
with StrGrd do
WriteLn(txt,Cells[0,i]+Cells[1,i]+Cells[2,i]);
CloseFile(txt);
end;
end.
Espero te sirva y saludos