Показать сообщение отдельно
  #63  
Старый 14.08.2012, 15:29
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от poli-smen
Это вам скорее всего пишет, что во второй строке Memo2 слово 'wave' и естественно оно не может быть преобразовано в число.
Строка вида '1234' может быть преобразована в число 1234, но строка вида 'wave' естественно ни в какое число не может быть преобразована.


Чтобы число преобразовать в строку есть функция IntToStr().
Так я это знаю, поэтому и не трогал RIFF, WAVE, fmt , data. Вот так у меня:
Код:
  Header.ChunkID       := 'RIFF';
  Header.ChunkSize     := StrToInt(Form1.Memo2.Lines[2]);
  Header.Format        := 'WAVE';
  Header.Subchunk1ID   := 'fmt ';
  Header.Subchunk1Size := StrToInt(Form1.Memo2.Lines[5]);
  Header.AudioFormat   := $0001;
  Header.NumChannels   := StrToInt(Form1.Memo2.Lines[7]);
  Header.SampleRate    := StrToInt(Form1.Memo2.Lines[8]);
  Header.ByteRate      := StrToInt(Form1.Memo2.Lines[9]);
  Header.BlockAlign    := StrToInt(Form1.Memo2.Lines[10]);
  Header.BitsPerSample := StrToInt(Form1.Memo2.Lines[11]);
  Header.Subchunk2ID   := 'data';
  Header.Subchunk2Size := StrToInt(Form1.Memo2.Lines[12]);

Процедура записи:
Код:
procedure TForm1.Button4Click(Sender: TObject);
begin
  if SaveDialog2.Execute then
  begin
    WriteWav(SaveDialog2.FileName);
  end;
Что теперь делать???
Ответить с цитированием