![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
koltpiton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.2.2014 Репутация: нет Всего: нет |
Здравствуйте! Нужна помощь. В бейсике не силен. На VB6 нужно:
1. определить буфер размером в 320 байт. 2. открыть файл на чтение в бинарном режиме 3. считать из файла 320 байт. 3.1 сделать задержку на 1 сек после чего очистить буфер и считать следующие 320 байт и так до конца файла. шарюсь в интернете уже несколько дней, на VB6 ни чего не нашел. Будте добры, покажите на примере как это делается. |
|||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
WriteFile
|
|||
|
||||
koltpiton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.2.2014 Репутация: нет Всего: нет |
По слову WriteFile нахожу примеры на Си, а мне нужно на VB6. Можно попросить какой нибудь примерчик решения этого вопроса? |
|||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
||||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
Я тебе уже писал на этот счет, открывай файл через модуль который я тебе дал (функции из winmm), т.к. тебе не просто нужны данные файла, а данные Wav файла. Там уже готовые функции для открытия и получения данных. Открывай порт, настраивай скорость и пиши уже в него через WriteFile
|
|||
|
||||
koltpiton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.2.2014 Репутация: нет Всего: нет |
Честное слово, даже не предполагал, что такие сложности буду. У меня файл: частота оцифровки: 8000 Герц. количество каналов: 1 (mono). бит на оцифровку: 16 signed. Аудиоданные должны подаваться в аудио порт модема порциями по 320 байт каждые 0.02 секунды. Я думал можно просто открыть файл как бинарный, считать с него в переменную А 320 байт передать в аудиопорт модема MSComm1.Output=A сделать задержку 0,02 сек потом передать следующие 320 байт. А модуль вы имеете ввиду который указали в ссылке? http://www.ex-designz.net/apidetail.asp?api_id=40 А то может не там капаю? |
|||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
Ты понимаешь что у файла есть заголовок и т.д? В RIFF можно все что угодно записать, как ты хочешь тебе тогда нужен RAW формат. Модуль на другом форуме я давал для открытия Wav. Точную задержку тебе не получится сделать никак.
|
|||
|
||||
koltpiton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.2.2014 Репутация: нет Всего: нет |
Все... понял. Еще тогда вопрос, заголовок тоже нужно передавать? Насколько я понял, заголовок это первые 44 байта, их отдельно сччитывать в буфер или начинать с него и по блочно через каждые 320 байт передавать? |
|||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
Это уже я не знаю, ты же говоришь что у тебя фиксированный формат, у тебя два пути просто выгрузить сырые данные в raw файл, либо использовать модуль, что в этом непонятного? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
А зачем нужно использовать API? чем не угодило штатное OPEN ... FOR BINARY ?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
TheTrick |
|
||||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
|
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
TheTrick, ну от ТС ничего про WAV я не слышал - хотя косвенно он это подтверждает.
Обычное в общем дело - озвучивать не задачу, а свои попытки её решить, что порождает кучу непоняток. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
||||
|
||||
koltpiton |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.2.2014 Репутация: нет Всего: нет |
Анализировать мне ничего не нужно. Мне нужно просто передать данные в com порт чтоб воспроизвести аудиофайл, чтоб на том конце его было слышно. А уж с заголовком в 44 байта или без это не важно. Задурили мне голову API функциями, все работает штатными средствами VB6.
Отдаем команду в порт MSComm1.Output = "AT^DDSETEX=2" & vbCr затем циклом считываем данные файла в массив и передаем блоками по 320 байт. Правильно человек говорит "А зачем нужно использовать API? чем не угодило штатное OPEN ... FOR BINARY ?" именно через OPEN ... FOR BINARY все и работает. И нечего там в файле анализировать. Спасибо всем за помощь. Тему можно закрыть. Это сообщение отредактировал(а) koltpiton - 10.2.2014, 21:50 |
|||
|
||||
TheTrick |
|
|||
![]() Atmeg'щик Профиль Группа: Участник Сообщений: 23 Регистрация: 5.9.2013 Где: Астрахань Репутация: 1 Всего: 1 |
Блин, вот какие люди пошли..... Понимаешь, бывают разные WAV файлы, бывают чанки LIST и вообще кучу других чанков, там можно хранить все что угодно вплоть до видео и программ и размер заголовка может стать несколько мб, ну это не важно, важно то что я тебе дал правильный вариант, который будет работать всегда и который надо использовать, а ты говоришь задурили. Ты понимаешь что у тебя может получиться так, что не будут выровнены данные файла и ты получишь облом? Ты писал что у тебя фиксированный формат, поэтому заголовок тебе не нужен, ты можешь его передать (это даже не будет слышно в звуке), но это неправильно, зачем тогда становиться программистом - чтобы писать ###код? Посмотри любой пример считывания данных WAV файла в интернете, никто не читает все данные сначала. Я тебе изначально написал про RAW файл, что его можно сразу считать от начала и до конца, так что прежде чем так писать сначала подумай. ![]() Это сообщение отредактировал(а) TheTrick - 10.2.2014, 22:00 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |