Зачем? Дарова, юный кодер! Сегодня мы с тобой опять будем кодить для своей мобилы. И опять будем писать на MidletPascal - чудо-юдо языке программирования для сотовых телефонов. И разговор у нас пойдёт не много не мало о ресурсах твоей проги. Почему? Постараюсь объяснить : Во-первых, это просто необходимо, это основы работы с языком программирования. Во-вторых, это способ засунуть в твоё приложение музыку, картинки и прочий хлам (в одной из следующих статей я покажу тебе, как сделать что-то вроде плеера, ну или просто фоновой музыки для проги). В-третьих, это очень удобно. Рассмотрим пример : тебе надо написать шпоры на экзамен, потому что учить впадлу, а сдавать надо. :) На экзамене 40 биллетов. Просто так засунуть их в тело проги не хорошо. Потому что это не удобно - засоряется исходник; это долго - если в самом исходнике много лишних данных, то прога, естесственно, работать будет медленнее; да и просто это не этично. Надо сделать 40 аккуратных файлов с ответами на экзаминационные вопросы, засунуть их как ресурсы в прогу и спокойно работать с ними! По крайней мере так ты не запутаешься в своём проекте - всё будет разложено по полочкам. Где и как? В папке с проектом есть каталог под названием "res". Там по дефолту храниться картинка - иконка проекта. Очень удобно держать все ресурсы в этом каталоге, потому что он специально для этого сделан. Но просто поместить туда файл и работать с ним не проканает. Надо сначала этот файл ресурсов подключить к нашему проекту. Делается это очень просто : выбирай в главном меню "Project->Import resource file..." Появится обычный диалог выбора файла. Выбирай нужный и дави "Открыть". Всё, ресурс в проекте, осталось тока написать прогу и скомпилировать её :))) Можно конечно, сделать для своего удобства отдельные каталоги под ресурсы, но меня устраивает стандартная папка "res". А как поступишь ты, решать тебе. Работа. Давай напишем маленький примерчик для работы с ресурсами. Создовай текстовый файл "data.txt", ну напиши там чё-нибудь, например, "Pupkin Zade RooleZZZ!!!!". Только напиши это не в одной строке, а в нескольких. Потом поймёшь почему. Подключай этот файл к проекту как ресурс, как это делать ты уже знаешь. Теперь в редакторе кода, измени сорец до вида :
program Resourse; //Это название проги, пиши чё хочешь var data : resource; //наш ресурс str : string; index : integer; begin data := OpenResource('/data.txt'); //открытие ресурса if (resourceAvailable(data)) then //проверка begin str := ReadLine(data); //читаем строку CloseResource(data); //закрываем ресурс end; ShowForm; //создаём форму... index := FormAddString('Text :' + str); //выводим инфу из ресурса Delay(10000); //задержка end.
Давай разбираться! Строкой data := OpenResource('/data.txt'); я инициализирую переменную data и открываю ресурс. Функция открытия имеет только один параметр - имя файла-ресурса. Этой строкой if (resourceAvailable(data)) then я проверяю, открылся ли ресурс? Т.е. функция ResourceAvailable(res: resource):boolean вернёт true если ресурс, указанный в параметре, открыт нормально. Дальше я присваиваю переменной str функцию ReadLine(res: resource):string, которая при нормальной работе возвращает строку файла-ресурса. Потом надо закрыть файл, делается это функцией CloseResource(res: resource). Ну а дальше, тебе должно быть всё понятно и без моих слов. Пробуй! Прога работает, она выводит превую строку созданного тобой файла. Помнишь, я просил тебя создать файл из нескольких строк? Дак вот, помни, что функция ReadLine(res:resource):string выводит только одну строку. Чтобы написать больше строк, добавь ещё одну строковую переменную, например str2, и после str := ReadLine(data); добавь str2 := ReadLine(data);, а после index := FormAddString('Text :' + str); добавь следующее: index := FormAddString('Text_2 :' + str2);. теперь будут читаться две строки, и так далее... Ещё MidletPascal позволяет читать файл-ресурсов побайтно. Для этого надо завести пременную типа integer и использовать функцию ReadByte(res: resource):integer; Для удобства и уменьшения кода используй всевозможные циклы. Это упростит твою работу. Разбор полётов. Вот ты и научился работать с ресурсами. Ничего сложного здесь нет, они не кусаются 8-). Теперь данные в твоей проге будут удобно скомпанованы, не будет свалки. Этого достаточно, чтобы переходить к следующим урокам. Надеюсь, тебе было интересно. Остальное позже...