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

Вниз

INI - файл и поток MemoryStream   Найти похожие ветки 

 
Vyachek   (2005-09-28 10:27) [0]

Подскажите почему при следующем коде размер потока получается разным. Вот код из программы:

// Делаем запись потока в INI файл

 TmpMemStream := TMemoryStream.Create;
 SaveToStream(TmpMemStream); // Здесь размер после записи данных в поток равен 1114
 MyIniFile :=  TIniFile.Create(aFilename);
 TmpMemStream.Seek(0,soFromBeginning);
 MyIniFile.WriteBinaryStream("CadrList","Value",TmpMemStream);
 MyIniFile.Free;
 TmpMemStream.Free;

// Читаем из INI файла в поток

 TmpMemStream := TMemoryStream.Create;
 MyIniFile :=  TIniFile.Create(aFilename);
 MyIniFile.ReadBinaryStream("CadrList","Value",TmpMemStream);
// но после этого размер потока равен 1023

Почему так??????????????


 
Николяй1   (2005-09-28 11:36) [1]

Точно не помню ноя уже сталкивался с такой проблемой когда пытался сохранит картинку в потоке. Сут в том что максимальня длина Stream в ini ограничена вот только не помню сколько  и поэтому при записи отсекется та часть которая выходит за границу дозволенного размера


 
GanibalLector ©   (2005-09-29 02:18) [2]

WriteBinaryData method (TRegistry)


Note: Data-value lengths are limited by available memory. Long values (more than 2048 bytes) should be stored as separate files, and those file names should be stored in the registry. Application elements such as icons, bitmaps, and executable files should be stored as separate files rather than as values in the registry.


 
Vyachek   (2005-10-04 11:00) [3]

Если кому интересно то я реши эту проблему вот так...
TmpMemStream := TMemoryStream.Create;
SaveToStream(TmpMemStream); // Здесь размер после записи данных в поток равен 1114
MyIniFile :=  TIniFile.Create(aFilename);
TmpMemStream.Seek(0,soFromBeginning);
MyIniFile.WriteBinaryStream("CadrList","Value",TmpMemStream);
MyIniFile.Free;
TmpMemStream.Free;

// Читаем из INI файла в поток

TmpMemStream := TMemoryStream.Create;
MyIniFile :=  TMemIniFile.Create(aFilename);
MyIniFile.ReadBinaryStream("CadrList","Value",TmpMemStream);

// и тогда все круто. У INI-файла придел 1023 байта при считывании методом ReadBinaryStream,  а у TMemIniFile этого придела нет


 
Eraser ©   (2005-10-04 11:06) [4]


> Vyachek   (28.09.05 10:27)

Если задача состоит в том, чтобы сохранять большИе объёмы структурированых данных в файл, стОит подумать о приминении xml.



Страницы: 1 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.043 c
9-1118591031
germany
2005-06-12 19:43
2005.10.30
Помогите с установкай GlScene


14-1129034852
NewWonder
2005-10-11 16:47
2005.10.30
Проблема с принтером HP 1000


14-1129008181
Ega23
2005-10-11 09:23
2005.10.30
С днем рождения! 11 октября


14-1128532591
Greenz
2005-10-05 21:16
2005.10.30
Коды системных ошибок Windows


8-1117874787
wardoc
2005-06-04 12:46
2005.10.30
Как нарисовать эллипс под произвольным углом





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