Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизСохранения в файл TStringList Найти похожие ветки
← →
Profi © (2005-01-29 16:27) [0]Не могу понять где ошибка, и вообще можно ли так?
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 16:34) [1]а ты посмотри на размер формируемого файла
наверно в файл пишется по 4 байта на каждый стринглист
так делать нельзя
← →
Bez (2005-01-29 16:35) [2]нет
так нельзя
ожно
sl.LoadFromFile
sl.SaveToFile
← →
Profi © (2005-01-29 16:43) [3]Bez (29.01.05 16:35) [2]
В том-то и дело, что мне надо сохранить набор строк именно как TStringList, а не как текстовый файл.
← →
default © (2005-01-29 16:52) [4]Profi © (29.01.05 16:43) [3]
TStringList думаете какое-то чудо производит?
также добавляет строки разделённые разделителями
← →
Profi © (2005-01-29 17:06) [5]default © (29.01.05 16:52) [4]
Просто у меня запись, один из элементов - TStringList, вот всю запись и надо сохранить.
← →
default © (2005-01-29 17:12) [6]Profi © (29.01.05 17:06) [5]
ну так сохраняйте
← →
Profi © (2005-01-29 17:17) [7]default © (29.01.05 17:12) [6]
Так тоже самое 4 байта и все!
← →
default © (2005-01-29 17:25) [8]Profi © (29.01.05 17:17) [7]
так руками!
если у Вас там файл записей элементов которой является TStringList-ая переменная то придётся хранить и её длину
хотя в некоторых случаях можно и без длины обойтись, но тогда придётся читать записи побайтно
← →
novice_man © (2005-01-29 17:35) [9]Profi © (29.01.05 17:17) [7]
sl:TsringList;
...
write(fl,sl);
...
Так Вы просто указатель записываете, а он как раз 4 байта.
ТStringList же сохраняет все именно в текстовом файле (здесь, текстовый файл - файл содержащий коды символов с $20 по $FF, а также символы перевода строки #0D#0A и символ EOF).
← →
Profi © (2005-01-29 17:40) [10]В общем все ясно, придется еще один файл создавать. Всем спасибо.
← →
Anatoly Podgoretsky © (2005-01-29 17:48) [11]Profi © (29.01.05 17:17) [7]
Неправда, TStringList нормально сохраняет, не 4 байта, а ровно столько, сколько есть.
← →
default © (2005-01-29 17:53) [12]Anatoly Podgoretsky © (29.01.05 17:48) [11]
он не использовал SaveToFile, писал указатели на объекты
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c