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

Обсуждение

давно
Профессионал
848
1596
17.11.2006, 10:37
общий
это ответ
Здравствуйте, 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:\temp\muzlo.mus)
Неизвестный
18.11.2006, 15:10
общий
это ответ
Здравствуйте, 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
Теперь у нас есть файлик, который мы извлекли из ресурса и можем проиграть
Форма ответа