Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Сохранения в файл 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
3-1105693674
Vantage-10
2005-01-14 12:07
2005.02.13
Подсчет количества записей по значениям


9-1087206460
breakmaster
2004-06-14 13:47
2005.02.13
битовые образы.


1-1106771989
tazik
2005-01-26 23:39
2005.02.13
Странная ошибка (а может быть и нет)


1-1107178571
MemoryReader
2005-01-31 16:36
2005.02.13
MemoryStream


1-1106837943
Денис Шаров
2005-01-27 17:59
2005.02.13
Как поставить "Hook" на CDROM???