![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранения в файл TStringList
Profi © (2005-01-29 16:27:00)Не могу понять где ошибка, и вообще можно ли так?
Procedure Save;
var
fl:file of TstringList;
sl:TsringList;
i:integer;
begin
sl:=TStringList.create;
for i:=0 to 10 do
sl.add(inttostr(i));
assignfile(fl,'proba.fpb');
rewrite(fl);
write(fl,sl);
closefile(fl);
sl.free;
end;
Procedure Load;
var
fl:file of TStringList;
sl:TstringList;
begin
assignfile(fl,'proba.fpb');
reset(fl);
read(fl,sl);
closefile(fl);
listbox1.items:=sl;
end;
default (2005-01-29 17:53:00) [1]Anatoly Podgoretsky © (29.01.05 17:48) [11]
он не использовал SaveToFile, писал указатели на объекты
Anatoly Podgoretsky (2005-01-29 17:48:00) [2]Profi © (29.01.05 17:17) [7]
Неправда, TStringList нормально сохраняет, не 4 байта, а ровно столько, сколько есть.
Profi (2005-01-29 17:40:00) [3]В общем все ясно, придется еще один файл создавать. Всем спасибо.
novice_man (2005-01-29 17:35:00) [4]Profi © (29.01.05 17:17) [7]
sl:TsringList;
...
write(fl,sl);
...
Так Вы просто указатель записываете, а он как раз 4 байта.
ТStringList же сохраняет все именно в текстовом файле (здесь, текстовый файл - файл содержащий коды символов с $20 по $FF, а также символы перевода строки #0D#0A и символ EOF).
default (2005-01-29 17:25:00) [5]Profi © (29.01.05 17:17) [7]
так руками!
если у Вас там файл записей элементов которой является TStringList-ая переменная то придётся хранить и её длину
хотя в некоторых случаях можно и без длины обойтись, но тогда придётся читать записи побайтно
Profi (2005-01-29 17:17:00) [6]default © (29.01.05 17:12) [6]
Так тоже самое 4 байта и все!
default (2005-01-29 17:12:00) [7]Profi © (29.01.05 17:06) [5]
ну так сохраняйте
Profi (2005-01-29 17:06:00) [8]default © (29.01.05 16:52) [4]
Просто у меня запись, один из элементов - TStringList, вот всю запись и надо сохранить.
default (2005-01-29 16:52:00) [9]Profi © (29.01.05 16:43) [3]
TStringList думаете какое-то чудо производит?
также добавляет строки разделённые разделителями
Profi (2005-01-29 16:43:00) [10]Bez (29.01.05 16:35) [2]
В том-то и дело, что мне надо сохранить набор строк именно как TStringList, а не как текстовый файл.
Bez (2005-01-29 16:35:00) [11]нет
так нельзя
ожно
sl.LoadFromFile
sl.SaveToFile
default (2005-01-29 16:34:00) [12]а ты посмотри на размер формируемого файла
наверно в файл пишется по 4 байта на каждый стринглист
так делать нельзя