ascrnet en delphi el tipo string no esta limitado (bueno hasta 2 GBytes
). El problema no es el tipo de la variable, sino que si luego quieres usar el record para definir el tipo de un fichero, el record tiene que tener una longitud fija, por eso se utilizan strings con una longitud fija. Este tipo de strings si que tienen una limitación de 255 caracteres
Una solución puede ser usar arrays de caracteres. Pensemos en un tamaño lo bastante grande, 32 kb por ejemplo, y lo usaremos de la siguiente manera:
Código Delphi
[-]
type
Registro = record
Str: Array[0..32*1024] of Char;
end;
var
F: File of Registro;
Str: String;
R: Registro;
begin
AssignFile(F,'C:\Prueba.bin');
{$I-}
Rewrite(F);
{$I+}
if IOResult = 0 then
begin
Str:= 'Una cadena muy larga .........';
FillChar(R,Sizeof(R),0);
StrLCopy(R.Str,PChar(Str),Sizeof(R.Str)-1);
Write(F,R);
CloseFile(F);
end;
end;
Como puedes ver, no es un sistema muy eficiente de guardar la información. Cada registro mediara 32kb, aunque solo contenga una letra. Quizá cuando tengas mas practica te interese usar otros métodos de almacenar información: bases de datos, xml, ini, ... que seguramente se mostraran mas eficientes para guardar cadenas.