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

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

Жанры

Советы по 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

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

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Привет из Загса. Милый, ты не потерял кольцо?

Лисавчук Елена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит