Показать сообщение отдельно
  #9  
Старый 12.11.2011, 22:01
Змей Змей вне форума
Прохожий
 
Регистрация: 03.11.2011
Сообщения: 18
Репутация: 10
По умолчанию

Понял в чем ошибка была,нужно было курсор в начало переставить,а то он дописывал, а не переписывал
Но я создавал массив под данные произвольно:
Код:
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;

Вроде все правильно делаю,а выдает ошибку на выделенной строчке. Подскажите что не так, уже все перепробовал. Нужна помошь!
Ответить с цитированием