Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

требуется слить ряд файлов в один...   Найти похожие ветки 

 
EvgenTss   (2003-06-01 20:54) [0]

...ряд wav файлов которые нужно в заданной последовательности поставить друг за другом, получить размер всей этой конструкции и прилепить заголовок. как это сделать максимально быстро.


 
SergeyKatruk ©   (2003-07-16 13:44) [1]

я через - TMemoryStream делал, однако не скажу, что это самый быстрый способ - а единственный, который я придумал..........


 
Pltnick ©   (2003-07-17 00:05) [2]

если ты сливаешь все в один файл, то уже гарантировано, что звуковые парам. в файлах одинаковые (sps, разрядность).
filepaths - массив путей к файлам.

const
bufSize = 1024 //варьируй это значения для достижения
//оптимальной скорости копирования файлов
var
w, w0: file;
Buf: array[1..bufSize];
...
AssignFile(ResultFilePath, w0);
Rewrite(w0, 1);
//закатай в файл заголовок
for f := 1 to FilesCount do
begin
AssignFile(filepaths[f], w);
totalsize_heads := totalsizeheads + FileSize(w);
end;
totalsize := totalsize_heads - (FileCount * 44);
//воспользуйся моим модуем.
//компоненты->сборник units->wavefileoptions.pas
//там найдешь все, чтобы записать заголовок.
//размер данных ты знаешь = totalsize
for f := 1 to FilesCount do
begin
AssignFile(filepaths[f], w);
Reset(w); Seek(w, 45);
repeat
BlockRead(w1,Buf,SizeOf(Buf1),Ret);
( w,Buf,Ret)
если ты сливаешь все в один файл, то уже гарантировано, что звуковые парам. в файлах одинаковые (sps, разрядность).
filepaths - массив путей к файлам.

const
bufSize = 1024 //варьируй это значения для достижения
//оптимальной скорости копирования файлов
var
w, w0: file;
Buf: array[1..bufSize];
...
AssignFile(ResultFilePath, w0);
Rewrite(w0, 1);
//закатай в файл заголовок
for f := 1 to FilesCount do
begin
AssignFile(filepaths[f], w);
totalsize_heads := totalsizeheads + FileSize(w);
end;
totalsize := totalsize_heads - (FileCount * 44);
//воспользуйся моим модуем.
//компоненты->сборник units->wavefileoptions.pas
//там найдешь все, чтобы записать заголовок.
//размер данных ты знаешь = totalsize
for f := 1 to FilesCount do
begin
AssignFile(filepaths[f], w);
Reset(w); Seek(w, 45);
repeat
BlockRead(w1,Buf,SizeOf(Buf1),Ret);
BlockWrite(w,Buf,Ret);
until (Ret=0) or (Ret<>SizeOf(Buf));
close(w);
end;
close(w0);

...


 
Pltnick ©   (2003-07-17 00:08) [3]

извини, там в коде опечатка:

......
repeat
BlockRead( w,Buf,SizeOf(Buf1),Ret);
( w0,Buf,Ret) извини, там в коде опечатка:

......
repeat
BlockRead( w,Buf,SizeOf(Buf1),Ret);
BlockWrite( w0,Buf,Ret);
until (Ret=0) or (Ret<>SizeOf(Buf));
.....


 
Думкин ©   (2003-07-17 05:20) [4]

По-моему, вопрос требует уточнений.
1. Надо рассказать про заголовки?
2. Быстро получить что? Фиговину в памяти для проигрывания или как?



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
14-42107
Delirium^.Tremens
2003-10-22 09:27
2003.11.13
Ищу работу!


3-41025
Alex_x
2003-10-14 18:04
2003.11.13
DCOMconnection


7-42210
Fantomas
2003-08-24 09:53
2003.11.13
Системный процесс


1-41661
PrettyFly
2003-10-25 13:55
2003.11.13
Есть такая фишка...


3-41089
AlexGreG
2003-10-23 10:11
2003.11.13
... Куда подевались установленные свойства? :o( ...