
13.12.2011, 18:17
|
Прохожий
|
|
Регистрация: 03.11.2011
Сообщения: 18
Репутация: 10
|
|
Извините, предыдущий пост не до конца разобрал, там все есть
Всем спасибо!
Ребят,все равно не получается
Читаю WAV файл,как тут писали, допустим размер файла WAV.size=20.000.000, тогда размер считываемых данных должен быть примерно в 2 раза меньше(если заголовок не учитывать), то есть 10.000.000, потому что данные по 2 байта, вроде делаю все как нужно,но в итоге если посмотреть считанные данные,то начиная со второй половины все равно нулю,в данном случае с 5.000.000 до 10.000.000
Код:
var
Form1: TForm1;
WAV: Tfilestream;
i: integer;
data: array of smallint;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not opendialog1.Execute then exit;
WAV:=Tfilestream.Create(opendialog1.FileName, fmopenread);
try
setlength(data,trunc((WAV.size-44)/sizeof(smallint)));
WAV.Seek(44, sofrombeginning);
WAV.read(data[0], length(data));
for i:=7000000 to 7000100 do
memo1.Lines.Add(inttostr(data[i]));
edit1.Text:=inttostr(WAV.size);
edit2.Text:=inttostr(length(data));
finally
WAV.free;
end;
end;
end.
В чем тут загвоздка?
|