Приложения
Приложение А. Функции, константы и структуры RDS
А.2. События блока и связанные с ними описания
А.2.5. События загрузки и сохранения схемы и отдельных блоков
А.2.5.5. RDS_BFM_LOADTXT – загрузка данных блока в текстовом формате
Поток, в котором вызывается функция модели
Главный поток RDS.
Первый параметр функции модели (int CallMode)
Константа RDS_BFM_LOADTXT.
Третий параметр функции модели (void *ExtParam)
Указатель на строку (char*), в которой содержится весь блок текста с сохраненными параметрами блока. Функция модели должна разобрать этот текст и записать параметры в личную область данных блока.
Возвращаемое функцией модели значение
Не используется, можно возвращать любое значение.
Примечания
Реакция на событие RDS_BFM_LOADTXT вызывается для загрузки данных, сохраненных в текстовом формате при сохранении схемы или отдельного блока в момент реакции на событие RDS_BFM_SAVETXT. Модель должна загрузить в память параметры блока, хранящиеся в его личной области данных, не обрабатываемой RDS, анализируя текст, записанный ей же в момент сохранения. В RDS встроены различные дополнительные функции и объекты, использование которых позволяет упростить создание и разбор текста, описывающего параметры блока.
Загрузка данных блока выполняется в следующих случаях:
- при загрузке блока в составе схемы;
- при загрузке отдельного блока из файла на диске (например, при вставке его в схему из библиотеки блоков);
- при вставке блока из буфера обмена.
Событие RDS_BFM_LOADTXT возникает только в том случае, если данные блока были сохранены в текстовом формате. Если данные были сохранены в двоичном, вместо него возникнет событие RDS_BFM_LOADBIN. Формат сохранения может выбираться моделью блока независимо от того, в каком формате сохраняется вся схема или блок, поэтому в функции модели блока достаточно предусмотреть реакцию либо на пару событий, работающих с двоичным форматом (RDS_BFM_SAVEBIN/RDS_BFM_LOADBIN), либо на пару, работающую с текстовым (RDS_BFM_SAVETXT/RDS_BFM_LOADTXT). Сохранение и загрузка данных блока подробно рассматриваются в §2.8 руководства программиста.
Результат возврата функции модели при реакции на событие не анализируется RDS. Если в процессе загрузки параметров произошла ошибка, функция модели должна вызвать сервисную функцию rdsReportTextLoadError, передав в ее параметре текстовое описание ошибки, которое будет показано пользователю.
См. также
RDS_BFM_SAVETXT, RDS_BFM_LOADBIN, rdsReportTextLoadError, rdsSTRCreateTextReader, rdsINICreateTextHolder, rdsCSVCreate.