Главная страница
    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.037 c
3-1105633282
ZL
2005-01-13 19:21
2005.02.13
Character Set


1-1107178538
Fonda
2005-01-31 16:35
2005.02.13
Сортировка в Excel


1-1107121682
haM3r
2005-01-31 00:48
2005.02.13
TRichEdit проблема со сменой цвета текста


14-1106300659
Prepod
2005-01-21 12:44
2005.02.13
литература


1-1106829452
Ega23
2005-01-27 15:37
2005.02.13
Слышал, что *.dfm можно как бинарник сохранить.





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