Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.0.6

Озеров Валентин

Шрифт:

{Считываем ChunkSize}

ReadChunkSize;

RIFFSize:= ChunkSize.lint; {должно быть 18,678}

{Считываем ChunkName "WAVE"}

ReadChunkName;

if ChunkName<>'WAVE' then OK:= False;

{Считываем ChunkName "fmt_"}

ReadChunkName;

if ChunkName<>'fmt ' then OK:= False;

{Считываем ChunkSize}

ReadChunkSize;

fmtSize:= ChunkSize.lint; {должно
быть 18}

{Считываем formatTag, nChannels}

ReadChunkSize;

ChunkSize.x:= M1;

formatTag:= ChunkSize.up;

nChannels:= ChunkSize.dn;

{Считываем nSamplesPerSec}

ReadChunkSize;

nSamplesPerSec := ChunkSize.lint;

{Считываем nAvgBytesPerSec}

ReadChunkSize;

nAvgBytesPerSec:= ChunkSize.lint;

{Считываем nBlockAlign}

ChunkSize.x:= F0;

ChunkSize.lint:= 0;

for i:= 0 to 3 do begin

Read(InFile, MM);

ChunkSize.chrs[I]:= MM;

end;

ChunkSize.x:= M1;

nBlockAlign:= ChunkSize.up;

{Считываем nBitsPerSample}

nBitsPerSample:= ChunkSize.dn;

for I:= 17 to fmtSize do Read(InFile,MM);

NoDataYet:= True;

while NoDataYet do begin

{Считываем метку блока данных "data"}

ReadChunkName;

{Считываем DataSize}

ReadChunkSize;

DataSize:= ChunkSize.lint;

if ChunkName <> 'data' then begin

for I:= 1 to DataSize do {пропуск данных, не относящихся к набору звуковых данных}

Read(InFile, MM);

end else NoDataYet:= False;

end;

nDataBytes:= DataSize;

{Наконец, начинаем считывать данные для байтов nDataBytes}

if nDataBytes>0 then DataYet:= True;

N:=0; {чтение с первой позиции}

while DataYet do begin

ReadOneDataBlock(Ki,Kj); {получаем 4 байта}

nDataBytes:= nDataBytes-4;

if nDataBytes<=4 then DataYet:= False;

end;

ScaleData(Ki);

if Ki.WAV.nChannels=2 then begin Kj.WAV:= Ki.WAV;

ScaleData(Kj);

end;

{Освобождаем
буфер файла}

CloseFile(InFile);

 end else begin

InitSpecs;{файл не существует}

InitSignals(Ki);{обнуляем массив "Ki"}

InitSignals(Kj);{обнуляем массив "Kj"}

 end;

end; { ReadWAVFile}

{================= Операции с набором данных ====================}

const MaxNumberOfDataBaseItems = 360;

type SignalDirectoryIndex = 0..MaxNumberOfDataBaseItems;

VAR DataBaseFile: file of Observation;

LastDataBaseItem: LongInt; {Номер текущего элемента набора данных}

ItemNameS: array[SignalDirectoryIndex] of String[40];

procedure GetDatabaseItem(Kk : Observation; N : LongInt);

begin

 if N<MaxNumberOfDataBaseItems then begin

Seek(DataBaseFile, N);

Read(DataBaseFile, Kk);

 end else InitSignals(Kk);

end; {GetDatabaseItem}

procedure PutDatabaseItem(Kk : Observation; N : LongInt);

begin

 if N<MaxNumberOfDataBaseItems then if N<=LastDataBaseItem then begin

Seek(DataBaseFile, N);

Write(DataBaseFile, Kk);

LastDataBaseItem:= LastDataBaseItem+1;

 end else while lastdatabaseitem<=n do begin

Seek(DataBaseFile, LastDataBaseItem);

Write(DataBaseFile, Kk);

LastDataBaseItem:= LastDataBaseItem+1;

 end else ReportError(1); {Попытка чтения MaxNumberOfDataBaseItems}

end; {PutDatabaseItem}

procedure InitDataBase;

begin

 LastDataBaseItem:= 0;

 if FileExists(StandardDataBase) then begin

Assign(DataBaseFile,StandardDataBase);

Reset(DataBaseFile);

while not EOF(DataBaseFile) do begin

Поделиться:
Популярные книги

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Отчий дом. Семейная хроника

Чириков Евгений Николаевич
Проза:
классическая проза
5.00
рейтинг книги
Отчий дом. Семейная хроника

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Путанабус. Трилогия

Старицкий Дмитрий
Фантастика:
боевая фантастика
6.93
рейтинг книги
Путанабус. Трилогия

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

С Д. Том 16

Клеванский Кирилл Сергеевич
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
С Д. Том 16

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

От Советского Информбюро - 1941-1945 (Сборник)

Неизвестен 3 Автор
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
От Советского Информбюро - 1941-1945 (Сборник)

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Отмороженный 14.0

Гарцевич Евгений Александрович
14. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Отмороженный 14.0