Валентин Озеров - Советы по Delphi. Версия 1.0.6

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.0.6» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.0.6: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.0.6»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Советы по Delphi. Версия 1.0.6 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.0.6», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

case X:Tag of

F0 : (chrs : array[0..3] of byte);

T1 : (lint : LongInt);

M1 : (up,dn: Integer);

end;

var ChunkSize : FudgeNum;

procedure WriteChunkName(Name: String);

var i: Integer;

MM: Byte;

begin

for i:= 1 to 4 do begin

MM:= ord(Name[i]);

write(OutFile, MM);

end;

end; {WriteChunkName}

procedure WriteChunkSize(LL:Longint);

var I: integer;

begin

ChunkSize.x:=T1;

ChunkSize.lint:=LL;

ChunkSize.x:=F0;

for I:= 0 to 3 do Write(OutFile,ChunkSize.chrs[I]);

end;

procedure WriteChunkWord(WW: Word);

var I: integer;

begin

ChunkSize.x:=T1;

ChunkSize.up:=WW;

ChunkSize.x:=M1;

for I:= 0 to 1 do Write(OutFile,ChunkSize.chrs[I]);

end; {WriteChunkWord}

procedure WriteOneDataBlock(var Ki, Kj : Observation);

var I: Integer

begin

ChunkSize.x:=M1;

with Ki.WAV do begin

case nChannels of

1:

if nBitsPerSample=16 then begin {1..2 Помещаем в буфер одноканальный 16-битный сэмпл}

ChunkSize.up = trunc(Ki.yyy[N]+0.5);

if N

N:= N+2;

end else begin {1..4 Помещаем в буфер одноканальный 8-битный сэмпл}

for I:=0 to 3 do ChunkSize.chrs[I]:= trunc(Ki.yyy[N+I]+0.5);

N:= N+4;

end;

2:

if nBitsPerSample=16 then begin {2 Двухканальный 16-битный сэмпл}

ChunkSize.dn:= trunc(Ki.yyy[N]+0.5);

ChunkSize.up := trunc(Kj.yyy[N]+0.5);

N:= N+1;

end else begin {4 Двухканальный 8-битный сэмпл}

ChunkSize.chrs[1]:= trunc(Ki.yyy[N]+0.5);

ChunkSize.chrs[3]:= trunc(Ki.yyy[N+1]+0.5);

ChunkSize.chrs[0]:= trunc(Kj.yyy[N]+0.5);

ChunkSize.chrs[2]:= trunc(Kj.yyy[N+1]+0.5);

N:= N+2;

end;

end; {with wav do begin..}

end; {четырехбайтовая переменная "chunksize" теперь заполнена}

ChunkSize.x:=T1;

WriteChunkSize(ChunkSize.lint);{помещаем 4 байта данных}

end; {WriteOneDataBlock}

procedure WriteWAVFile(var Ki, Kj : Observation);

var MM: Byte;

I: Integer;

OK: Boolean;

begin

{Приготовления для записи файла данных}

AssignFile(OutFile, StandardOutput); { Файл, выбранный в диалоговом окне }

ReWrite(OutFile);

With ki.wav do begin

DataSize:= nChannels*(nBitsPerSample div8)*(Ki.Last+1);

RIFFSize:= DataSize+36;

fmtSize:= 16;

end;

{Записываем ChunkName "RIFF"}

WriteChunkName('RIFF');

{Записываем ChunkSize}

WriteChunkSize(Ki.WAV.RIFFSize);

{Записываем ChunkName "WAVE"}

WriteChunkName('WAVE');

{Записываем tag "fmt_"}

WriteChunkName('fmt ');

{Записываем ChunkSize}

Ki.WAV.fmtSize:= 16; {должно быть 16-18}

WriteChunkSize(Ki.WAV.fmtSize);

{Записываем formatTag, nChannels}

WriteChunkWord(Ki.WAV.formatTag);

WriteChunkWord(Ki.WAV.nChannels);

{Записываем nSamplesPerSec}

WriteChunkSize(Ki.WAV.nSamplesPerSec);

{Записываем nAvgBytesPerSec}

WriteChunkSize(Ki.WAV.nAvgBytesPerSec);

{Записываем nBlockAlign, nBitsPerSample}

WriteChunkWord(Ki.WAV.nBlockAlign);

WriteChunkWord(Ki.WAV.nBitsPerSample);

{Записываем метку блока данных "data"}

WriteChunkName('data');

{Записываем DataSize}

WriteChunkSize(Ki.WAV.DataSize);

N:=0; {первая запись-позиция}

while N<=Ki.Last do WriteOneDataBlock(Ki,Kj);{помещаем 4 байта и увеличиваем счетчик n}

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

CloseFile(OutFile);

end; {WriteWAVFile}

procedure InitSpecs;

begin

end; { InitSpecs }

procedure InitSignals(var Kk : Observation);

var J: Integer;

begin

for J:= 0 to MaxN do Kk.yyy[J]:= 0.0;

Kk.MinO:= 0.0;

Kk.MaxO:= 0.0;

Kk.Last:= MaxN;

end; {InitSignals}

procedure InitAllSignals;

begin

InitSignals(K0R);

InitSignals(K0B);

InitSignals(K1R);

InitSignals(K1B);

InitSignals(K2R);

InitSignals(K2B);

InitSignals(K3R);

InitSignals(K3B);

end; {InitAllSignals}

var chunkname: string[4];

procedure ReadChunkName;

var I : integer;

MM : Byte;

begin

ChunkName[0]:= chr(4);

for i := 1 to 4 do begin

Read(InFile, MM);

ChunkName[I]:=chr(MM);

end;

end; {ReadChunkName}

procedure ReadChunkSize;

var I: integer;

MM : Byte;

begin

ChunkSize.x:= F0;

ChunkSize.lint := 0;

for i:= 0 to 3 do begin

Read(InFile, MM);

ChunkSize.chrs[I]:= MM;

end;

ChunkSize.x:= T1;

end; {ReadChunkSize}

procedure ReadOneDataBlock(var Ki,Kj:Observation);

var I: Integer;

begin

if n<=maxn then begin

ReadChunkSize; {получаем 4 байта данных}

ChunkSize.x:=M1;

with Ki.WAV do case nChannels of

1:

if nBitsPerSample=16 then begin {1..2 Помещаем в буфер одноканальный 16-битный сэмпл}

Ki.yyy[N]:=1.0*ChunkSize.up;

if N

N:= N+2;

end else begin {1..4 Помещаем в буфер одноканальный 8-битный сэмпл}

for I:=0 to 3 do Ki.yyy[N+I]:=1.0*ChunkSize.chrs[I];

N := N+4;

end;

2:

if nBitsPerSample=16 then begin {2 Двухканальный 16-битный сэмпл}

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.0.6»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.0.6» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.0.6»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.0.6» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x