Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 412
от 22.11.2006, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 213, Экспертов: 25
В номере:Вопросов: 1, Ответов: 2


Вопрос № 62974: Здравствуйте! Подскажите как считывабтся данные из файла ресурсов функцией getresdata (id, тип данных)? (напримае считать музыкальный файл)....

Вопрос № 62.974
Здравствуйте! Подскажите как считывабтся данные из файла ресурсов функцией getresdata (id, тип данных)? (напримае считать музыкальный файл).
Отправлен: 17.11.2006, 09:30
Вопрос задал: Ars 11 www (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PsySex
Здравствуйте, Ars 11 www!
В частности музыкального файла.
Помещаем в файл ресурсов файла путем Add Custom Resuorce. Вообще в CUSTOM можно кидать любые типы файлов. Затем, когда нужно его проиграть, сохраняем его например во временную директорию и проигрываем. При закрытии проги удаляем свои сохраненные файлы.
Вот подпрограмма сохранения файла на диск из ресурсов.
====================================================
Private Sub Extract(ID As Integer, Path As String)
'extracting resourses
On Error Resume Next
Dim file() As Byte
file() = LoadResData(ID, "CUSTOM")
Open Path For Binary Access Write As #1
Put #1, , file()
Close #1
End Sub
=====================================================
Параметры: ID-индетификатор ресурса, Path-путь с именем файла для сохранения(c: empmuzlo.mus)
---------
Bom Shankar!
Ответ отправил: PsySex (статус: Студент)
Ответ отправлен: 17.11.2006, 10:37

Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Ars 11 www!
Файл ресурсов как таковой существует только на этапе разработки и компиляции проекта, далее он для работы программы не нужен, поскольку линковщик встраивает его содержимое в исполняемый файл (там есть специальная секция ресурсов).
Чтобы получить данные из ресурсов, их туда, естественно, надо поместить, а потом уже считывать. Ресурсы бывают таких видов:
- Строковой
- Графический
- Бинарный (двоичный), его еще называют Custom (иной, куда пихать можно все)

Далее - ресурсы, с которыми бейсик работать не умеет (хотя при известном извращении можно все):
- Меню
- Диалоги
- Акселераторы (горячие клавиши)

Музыкальный файл - это бинарный файл, который размещается в ресурсах с помощью VB6 Resource Editor, нажав на кнопочку Add Custom Resource с изображением разделенного на 4 части квадратика. Далее в появившемся окне нужно выбрать файл и все! Получившийся раздел имеет имя CUSTOM, но его можно и переименовать. В этот раздел можно добавлять сколько угодно своих бинарных ресурсов.
Чтобы всем этим добром попользоваться, надо использовать функцию загрузки бинарного ресурса, предварительно объявив байтовый массив для его хранения:

Dim arbyMas() As Byte
...
arbyMas = LoadResData(Id, "CUSTOM") 'Загружаем в массив файлик из ресурса
'Если Вы переименовывали CUSTOM, то укажите свое имя.
'Id может быть любым - словом без пробелов, цифрой, главное, чтобы не кирилицей

Dim iFile As Integer
iFile = FreeFile

'Создаем файл и пишем в него содержимое байтового массива
Open "c:MyFile.mp3" For Binary As #iFile
Put #iFile, ,arbyMas
Close #iFile
Теперь у нас есть файлик, который мы извлекли из ресурса и можем проиграть
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (мь!тарь) (статус: Студент)
Ответ отправлен: 18.11.2006, 15:10


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное