Hola de nuevo.
Me quede pensando que tal vez tengas un registro con muchos campos de tipo string de diferentes tamaños y en ese caso se hace tedioso escribir los procedimientos anteriores.
Tratando de buscar el código simple, otra opción podría ser:
Código Delphi
[-]
...
{$A-}
const
MaxFields = 20;
FieldsLength: array[1..MaxFields] of Integer = (12,9,8,5,7,11,...);
type
TRegistro = record
v: array[1..MaxFields] of string; end;
function RecordToString(r : TRegistro): string;
var
i: Integer;
begin
for i:= 1 to MaxFields do
Result:= Result + r.v[i] + StringOfChar(' ', FieldsLength[i] - Length(r.v[i]));
end;
function StringToRecord(s : string): TRegistro;
var
i,d: Integer;
begin
d := 1;
for i:= 1 to MaxFields do
begin
Result.v[i] := Copy(s, d, FieldsLength[i]);
Inc(d,FieldsLength[i]);
end;
end;
...
Saludos.