
28.02.2008, 01:49
|
 |
Начинающий
|
|
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
|
|
Код:
function ReadWaveInfo(FileName: String; Memo: TMemo): Boolean;
var
fs : TFileStream;
b : Byte;
i : Integer;
w : Word;
s : String;
begin
Result := True;
try
fs := TFileStream.Create(FileName, fmOpenRead);
s := '';
for i := 0 to 3 do begin
fs.Read(b, 1);
s := s + Chr(b);
end;
Memo.Lines.Add('RIFF : ' + s);
fs.Read(i, 4);
Memo.Lines.Add('RIFF Size : ' + IntToStr(i));
s := '';
for i := 0 to 3 do begin
fs.Read(b, 1);
s := s + Chr(b);
end;
Memo.Lines.Add('WAVE : ' + s);
s := '';
for i := 0 to 3 do begin
fs.Read(b, 1);
s := s + Chr(b);
end;
Memo.Lines.Add('fmt : ' + s);
fs.Read(i, 4);
Memo.Lines.Add('fmt Size : ' + IntToStr(i));
fs.Read(w, 2);
Memo.Lines.Add('format Tag : ' + IntToStr(w));
fs.Read(w, 2);
Memo.Lines.Add('nChannels : ' + IntToStr(w));
fs.Read(i, 4);
Memo.Lines.Add('nSamples Per Sec : ' + IntToStr(i));
fs.Read(i, 4);
Memo.Lines.Add('nAvg Bytes Per Sec : ' + IntToStr(i));
fs.Read(w, 2);
Memo.Lines.Add('nBlock Align : ' + IntToStr(w));
fs.Read(w, 2);
Memo.Lines.Add('nBits Per Sample : ' + IntToStr(w));
s := '';
for i := 0 to 3 do begin
fs.Read(b, 1);
s := s + Chr(b);
end;
Memo.Lines.Add('data : ' + s);
fs.Read(i, 4);
Memo.Lines.Add('Data Size : ' + IntToStr(i));
fs.Free;
except
Result := False;
end;
end;
Тока работает не со всеми файлами, почему - незнаю, писал давно влом разбираться  .
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
|