Средства разработки приложений


Операционная система PalmOS для программиста - часть 6


Далее в тексте для простоты файл (database) в PalmOS будем называть просто “файл”.

Чтобы открыть файл нужно знать его LocalID и номер карты, где он находится (обычно 0). LocalID файла (еще называется как Database ID) это LocalID блока памяти который содержит информацию об этом файле (количество записей, свойства, дата).

Основные API функции модуля DataManager:

Err DmGetNextDatabaseByTypeCreator (Boolean newSearch, DmSearchStatePtr stateInfoP, UInt32 type, UInt32 creator, Boolean onlyLatestVers, UInt16* cardNoP, LocalID* dbIDP)

получить LocalID всех файлов, по типу и идентификатору создателя.

LocalID DmFindDatabase (UInt16 cardNo, const Char* nameP)

Еще один способ получить LocalID файла

DmOpenRef DmOpenDatabase (UInt16 cardNo, LocalID dbID, UInt16 mode)

открыть файл по номеру карты и его LocalID

MemHandle DmQueryRecord (DmOpenRef dbP, UInt16 index)

Открыть запись(record) на чтение или запись

Err DmWrite (void* recordP, UInt32 offset, const void * srcP, UInt32 bytes)

Записать данные в запись

Err DmCloseDatabase (DmOpenRef dbP)

Закрыть файл

После того как файл открыть, в файле открывается Запись (DmQueryRecord). При открытии Записи не нужно предоставлять буфер для считываемых данных, вместо этого функция DmQueryRecord сама возвращает указатель на блок памяти, где находятся данные (тот же самый буфер). Благодаря этому механизму, Запись любой длины открывается одинаково быстро.

Записывать в Запись можно только с помощью специальной функции (по соображениям безопасности) другое использование указателя на Запись сразу вызывает ошибку с последующим рестартом КПК .

PalmOS позволяет работать с файлами по классической схеме (fopen, fread, fclose) не обращая на особенности строения файлов.

Создание приложений, Инструментарий, POSE

Программы для PalmOS обычно создаются на С (С++), однако существуют компиляторы для других языков: Java, Pascal, Basic, Assembler. (для запуска Java приложений нужно будет дополнительно установить Java Машину).




Начало  Назад  Вперед