Понял в чем ошибка была,нужно было курсор в начало переставить,а то он дописывал, а не переписывал
Но я создавал массив под данные произвольно:
Код:
Data: array[0..10000000] of SmallInt;
Хотел сделать через динамический массив,никогда их не использовал раньше,но вроде ничего сложного. Записал вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
F:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
setlength(dat,1000000); // 1000000 просто чтобы потестить
with WaveHeader do
setlength(data,1000000);
F.Read(WaveHeader, sizeof(TWaveHeader));
with WaveHeader do
begin
memo1.Lines.Text:=inttostr(dataLen);
RiffLe:=Rifflen;
InfoLe:=Infolen;
DataLe:=Datalen;
WaveTyp:=WaveType;
C:=Ch;
Fre:=Freq;
BytesPerSe:=BytesPerSec;
alig:=align;
Bit:=Bits;
for i:=0 to 100 do // 100 просто чтобы потестить
dat[i]:=data[i];
end;
end;
Вроде все правильно делаю,а выдает ошибку на выделенной строчке. Подскажите что не так, уже все перепробовал. Нужна помошь!