program DemoTest_1; (***********************************) (*Программа демонстрирует использование управляющих символов.*) (* #07-^G — звонок (BEL); *) (* #08-^H —(BS); *) (* #10-^J — перевод строки (LF); *) (* #13-^M — возврат каретки (CR). *) (***********************************) const CR = #$0D; LF = #$0A; TempName = ?$$$$$$$$.$$$?; type StringType = string [80]; RegPack = record case boolean of False : (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : integer); True : (AL,AH,BL,BH,CL,CH,DL,DH : byte) end; var C : char; F : text; L : StringType; (*—————————————————————————————————————-*) procedure PutLine (Line : StringType); (**********************) (* Печать с задержкой *) (**********************) const Time = 150; var I : byte; Regs : RegPack; begin for I := 1 to Length (Line) do begin Regs.AH := $02; (* печать символа *) Regs.DL := Ord (Line [I]); MsDos (Regs); Delay (Time) end; WriteLn; Exit end; (* PutLine *) (*—————————————————————————————————————-*) begin TextBackGround (Black); TextColor (LightGray); ClrScr; for C := #00 to #31 do begin Str (Ord (C) : 3, L); L := L + ? —>? + C + ?<—?; if C > #15 then GotoXY (40, WhereY); PutLine (L); if C = #15 then GotoXY (1, 1) end; GotoXY (1, 18); Assign (F, TempName); Rewrite (F); WriteLn (F, ?Разорванная? + CR + LF + ?строка?); WriteLn (F, ?Разорванная? + LF + CR + ?строка?); WriteLn (F, ?Разорванная? + CR + ?строка?); Close (F); Reset (F); while not Eof (F) do begin ReadLn (F, L); PutLine (L) end; Close (F); Erase (F); Halt end. (* DemoTest_1 *)