Показать сообщение отдельно
  #12  
Старый 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.
В чем тут загвоздка?
Ответить с цитированием