Пятница, 03.05.2024, 15:47

Delphi

Приветствую Вас Гость

Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня были:
Самые активные пользователи

Меню сайта
Категории каталога
Основы [8]
Исходники [2]
Наш опрос
Чему уделять больше внимания?
Всего ответов: 64
Главная » Статьи » MIDletPascal » Основы

Работа с ресурсами : подключение и чтение
Зачем? Дарова, юный кодер! Сегодня мы с тобой опять будем кодить для своей мобилы. И опять будем писать на 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-). Теперь данные в твоей проге будут удобно скомпанованы, не будет свалки. Этого достаточно, чтобы переходить к следующим урокам. Надеюсь, тебе было интересно. Остальное позже...






Взято с сайта http://www.liveofpc.3dn.ru/

Категория: Основы | Добавил: Ivin (22.03.2008)
Просмотров: 2154 | Рейтинг: 0.0/0 |