Vini05.12.2006 13:34
TMemoryStream *Wave_Stream = new TMemoryStream;
float Wave_array[8192];
Wave_Stream->Clear();
Main_DM->Wave_Val_ADODataSetWAVE_DATA->SaveToStream(Wave_Stream);
Wave_Stream->Seek(0,soFromBeginning);
Wave_Stream->Read(Wave_array, Wave_Stream->Size);
float а = Wave_array[5];
Небольшие пояснения:
Загружаем двоичные данные из БД в поток (практически это дамп массива).
затем из потока записываем их в буфер Wave_array (инициализируем таким образом массив)
потом работаем с Wave_array как c обычным массивом.
количество элементов флоат массиве можно посчитать как
(Wave_Stream->Size / 4)
как бы сделать все тоже самое, но с условием, что Wave_Stream у нас будет динамическим массивом?
Raul05.12.2006 14:44
Наверное, задача заключается в том, чтобы сделать динамическим массивом Wave_array?
...
exarray<float> Wave_array;
...
Wave_array.resize(Wave_Stream->Size / 4); // или expand
Wave_Stream->Read(Wave_array.base(), Wave_Stream->Size);
...
Все остальное также.
Vini05.12.2006 16:46
Да! конечно речь шла о Wave_array!
Спасибо! значит делаю правильно.
Для написания ответа авторизуйтесь