Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.075 c
6-1101735729
Knight
2004-11-29 16:42
2005.02.13
Что такое со стримом?


1-1107252218
markers
2005-02-01 13:03
2005.02.13
Права доступа


1-1106729873
NightStranger
2005-01-26 11:57
2005.02.13
Окно запроса


4-1103887279
Sphinx
2004-12-24 14:21
2005.02.13
Имеет ли TTread Handle


4-1104168822
miek
2004-12-27 20:33
2005.02.13
Hook на клавиатуру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский