![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi, wav |
|
Delphi - Delphi, wav
|
Старожил Сообщения: 225 |
Мне нужно загрузить файл с таким расширением и взять из него для начала амплитуды сигнала в единицу времени и на его основе строить графики и по полученным данным проводить расчеты... вообще то я понятия не имею даже с чего начать...
|
|
------- Отправлено: 15:06, 04-12-2002 |
Студент Сообщения: 445
|
Профиль | Отправить PM | Цитировать Roman Go
Конечно нет. Зато есть в книгах по Паскалю :-) Объявляешь в нужном месте переменную типа "file". Из таких файлов чтение производится поблочно, открывать его нужно с дополнительным параметром - длина блока. Пишешь "assign(F, '<путь к твоему файлу>')". Здесь F - твоя файловая переменная. Если путь к файлу заранее неизвестен, то лучше писать относительный путь, то есть путь относительно директории, в которой была запущена программа :-) Далее чтение блока производится командой BlockRead(F, Buf, Count), F - файловая переменная, Buf - переменная, куда будет записана прочитанная информация, Count - количество блоков для считывания. Примечание 1: Буферная переменная должна быть соответствующего размера, чтобы ничего не переполнилось. Примечание 2: Существуют некоторые ограничения на размер блока и на количество считываемых блоков. (это посмотри в хелпе - я не помню :-) ) Добавлено: Да, совсем забыл... Чтобы открыть файл на чтение нужно выполнить команду reset(F, 1) Здесь 1 - длина блока. Кстати с блоками длины 1 работать удобнее, т.к. из них можно составить блок любой длины. :-) |
------- Отправлено: 08:20, 09-12-2002 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 225
|
Профиль | Отправить PM | Цитировать var *Form1: TForm1; *i, i1:integer; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var f:file; * *buf:char; begin * *//i:=0; * *assignfile(f,'1.wav'); * *reset(f, 1); * *seek(f, i); * *BlockRead(f, buf, 1); * *memo1.Lines.Add(buf); * *closefile(f); * *i:=i+1; end; procedure TForm1.Button2Click(Sender: TObject); var f:file; * *buf:integer; * *p:^integer; begin * *//i:=0; * *assignfile(f,'1.wav'); * *reset(f, 1); * *seek(f, i1); * *BlockRead(f, buf, 1); * *p:=@buf; * *memo2.Lines.Add(inttostr(p^)); * *closefile(f); * *i1:=i1+1; end; возможно я не с того конца начал, для начала я не пойму что это за формат, http://*http://graphics.cs.msu.su/co...elp/wavfmt.htm мне ничего не понятно кроме общих слов, "от начала на столько то" а вот на сколько, и как это сколько отступить не понимаю... неполучается... Что это ch, ah, h и как с ними работать... [s]Исправлено: Roman Go, 6:37 10-12-2002[/s] |
------- Отправлено: 05:35, 10-12-2002 | #12 |
Старожил Сообщения: 225
|
Профиль | Отправить PM | Цитировать while not eof(f) do begin blockread(f,buf,sizeof(buf)); setLength(data, length(data)+1); data[i]:=buf; inc(i); end; closefile(f); Читает, то он читает и даже рисунок похожий получается, но данные я читаю не те, дело в том что у меня есть программка читающая wav файлы и если я открываю один и тот же файл своей программкой и ей я получаю разные результаты. Число каналов - 1, Число байт для представления одного отсчета - 2, разрядность - 16. Это параметры файла на котором я эксперементирую, дело в том что не один из них я не учитываю, ибо не знаю как это сделать. Цитата:
![]() Добавлено: Что такое полное слово? Как прочитать старший и младший байт, и вообще имеет ли это какое-либо отношение к тому что я пытаюсь сделать? Добавлено: Цитата:
![]() Цитата:
|
|||
------- Отправлено: 06:23, 17-02-2003 | #13 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
так возможно? wav--> mp3--> wav(качество mp3) --> mp3(качество как у mp3 предыдущего) | ALEXEY_DFD | Видео и аудио: обработка и кодирование | 4 | 19-12-2009 21:57 | |
Мультимедиа - [addon] LameDropXPd (программа для конвертации wav/mp3/wav) | Fraerok | Наборы обновлений для Windows XP/2003/Windows 7 | 7 | 27-08-2009 20:00 | |
Из Midi в Wav | Murder7 | Хочу все знать | 2 | 13-06-2006 19:59 | |
WAV to MP3 | Trialist | Хочу все знать | 15 | 04-05-2006 20:28 | |
Конвертор из Midi в Wav | KEugeNik | Хочу все знать | 3 | 27-10-2003 09:26 |
|