Hola Critter.
Cita:
¿ Podria tener algún problema usando esta funcion ?
|
Solamente si tuviera dificultad en detectar el fin de los campos o del registro.
Pero por otro lado, la función
RecordToString tendría el mismo resultado que la función
Cadena que te sugirio
egostar, siendo esta última mucho más simple y eficiente.
Si deseas que cada cadena conserve una longitud fija podes hacer :
Código Delphi
[-]
...
type
TRegistro = record a: string[10];
b: string[12];
c: string[7];
end;
function RecordToString(r: TRegistro): string;
begin
Result := r.a + StringOfChar(' ', SizeOf(r.a) - Length(r.a) - 1)+
r.b + StringOfChar(' ', SizeOf(r.b) - Length(r.b) - 1)+
r.c + StringOfChar(' ', SizeOf(r.c) - Length(r.c) - 1)
end;
function StringToRecord(s: string): TRegistro;
begin
with Result do
begin
a := Copy(s, 1, SizeOf(a)-1);
b := Copy(s, SizeOf(a), SizeOf(b));
c := Copy(s, SizeOf(a)+SizeOf(b)-1, SizeOf(c))
end
end;
...
Ejemplo para guardar en el archivo de texto:
Código Delphi
[-]
...
var
r : TRegistro;
F : TextFile;
begin
...
AssignFile(F, ...
...
Writeln(F, RecordToString(r));
...
Ejemplo para leer desde el archivo de texto:
Código Delphi
[-]
...
var
s : string;
r : TRegistro;
F : TextFile;
begin
AssignFile(F, ...
...
while not Eof(F) do
begin
Readln(F, s);
r := StringToRecord(s);
...
end;
...
O si no, no estoy entendiendo el problema...
Saludos.