Главная страница
    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.04 c
4-1103751569
bot
2004-12-23 00:39
2005.02.13
Клик по кнопке в чужом приложении


14-1106275434
Думкин
2005-01-21 05:43
2005.02.13
С Днем рождения! 21 января


14-1106224865
Anonimus
2005-01-20 15:41
2005.02.13
Выделенка на Вынь2к


4-1103897589
malij
2004-12-24 17:13
2005.02.13
компьютер


1-1106808161
dima
2005-01-27 09:42
2005.02.13
PChar





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский