Кот239, а чем вас шортстринги не устраивают? Вам же Зуб сказал как можно строку сохранить....
скажем вот так все Ок.:
- Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
bz:baza;
f:file of baza;
begin
bz.s:='1';
AssignFile(f,'C:\111.dat');
Rewrite(f);
Write(f,bz);
bz.s:='Много букв не ну очень много :))';
Write(f,bz);
CloseFile(f);
AssignFile(f,'C:\111.dat');
Reset(f);
Read(f,bz);
caption:=bz.s;
Read(f,bz);
CloseFile(f);
caption:=caption +' '+bz.s;
end;
Теперь теория:
когда вы пишите файл и хотите чтоб он был строгой конструкции, в данно случае конструкция = Record, то при записи и чтении компилятор должен знать сколько эта запись в длинну.
Но ведь другие типы например byte, real работают!
Это стандартные типы - которые имеют строгий и определенный размер, скажем байт ну он и в линуксе байт (что кстати очень удивительно).
Внимание вопрос: а чему ровна длина строки? типа String? ааа вот так-то...
- Код: Выделить всё
S:String;
S:='1';
S:='12';
S:='123';
S:='1234567890';
А вот шортстринг имеет определенный размер, именно по этому мы можем его корректно прочитать и записать в двоичный файл, потому что компилятор знает сколько ему нужно прочитать-записать. А для стринга он не знает, потому что длина стринга разная.
Если вам длины ШортаСтринг мало, ну тут все что душе угодно, вплоть до массива из шортстрингов нужной вам длины.ну или скажем массива символов, думаю идея понятна.
Упс опередили...