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
;