home *** CD-ROM | disk | FTP | other *** search
- {$V-,K-,C-,R+}
- {$I KBMISC}
- {$I READ.MOD}
-
- Procedure Shutdown;
- Begin
- ClrScr;
- Cursor(on);
- End;
-
-
- { * * * * * M A I N P R O G R A M B L O C K * * * * * }
-
- {global variables for main program block}
- Const
- ScanExitSet:ByteSetType=[EscKey,EnterKey,ArrowLfKey,ArrowRtKey,ArrowUpKey,
- ArrowDnKey,HomeKey,EndKey,FullStringExit,F2Key,
- CtrlArrowLfKey,CtrlArrowRtKey];
- Var
- Scan:Byte;
- Ascii:char;
- CurrentField:Byte;
- Option:char;
- Cpos:Array [1..6] of Byte;
- TempString:String80;
- RealNumber:Real;
- IntegerNumber:Integer;
- ByteNumber:Byte;
- JulDate:JulType;
- DayPartTime:Integer;
-
- Procedure ReadSomething;
- Begin
- Case CurrentField of
- 1:ReadString(Option,On,On,Off,On,On,1,1,18,5,ScanExitSet,Scan,[],ascii,
- cpos[1],TempString,'(&&&)&&&-&&&& ext:####');
- 2:ReadReal(Option,On,On,On,On,On,2,2,18,9,ScanExitSet,Scan,[],ascii,
- 8,4,cpos[2],RealNumber);
- 3:ReadInt(Option,On,On,On,On,On,3,3,18,14,ScanExitSet,Scan,[],ascii,
- 6,cpos[3],IntegerNumber);
- 4:ReadByte(Option,On,On,On,On,4,4,60,5,ScanExitSet,Scan,[],ascii,
- 3,cpos[4],ByteNumber);
- 5:ReadDate(Option,On,5,5,60,9,ScanExitSet,scan,[],Ascii,cpos[5],
- JulDate,3,'N');
- 6:ReadTime(Option,On,Off,0,6,6,60,14,ScanExitSet,Scan,[],ascii,
- cpos[6],DayPartTime);
- End; {case}
- End;
-
- Procedure SetUpScreen;
- Begin
- QWrite('Read String:',6,5,0,0);
- QWrite('Read Real:',8,9,0,0);
- QWrite('Read Integer:',5,14,0,0);
- QWrite('Read Byte:',50,5,0,0);
- QWrite('Read Date:',50,9,0,0);
- QWrite('Read Time:',50,14,0,0);
- TempString:='503'; Cpos[1]:=4;
- RealNumber:=1234567.321; Cpos[2]:=1;
- IntegerNumber:=12345; Cpos[3]:=1;
- ByteNumber:=16; Cpos[4]:=1;
- JulDate.Day:=300; Cpos[5]:=1;
- JulDate.Year:=1986;
- DayPartTime:=5355; { 7:26:15 } Cpos[6]:=1;
- Option:='W';
- For CurrentField:=1 to 6 do ReadSomething;
- Option:='R';
- CurrentField:=1;
- End;
-
- Begin
- Initialize;
- SetUpScreen;
- Repeat
- ReadSomething;
- Case Scan of
- CtrlArrowLfKey,ArrowLfKey:
- Case CurrentField of
- 4..6:CurrentField:=CurrentField-3;
- 2..3:CurrentField:=CurrentField+2;
- 1:CurrentField:=6;
- End; {case}
- CtrlArrowRtKey,ArrowRtKey:
- Case CurrentField of
- 1..3:CurrentField:=CurrentField+3;
- 4..5:CurrentField:=CurrentField-2;
- 6:CurrentField:=1;
- End; {case}
- Enterkey,FullStringExit:
- Begin
- CurrentField:=succ(currentField);
- If CurrentField=7 then CurrentField:=1;
- End;
- HomeKey:If CurrentField in [4..6] then CurrentField:=CurrentField-3
- Else CurrentField:=1;
- EndKey:If CurrentField in [1..3] then CurrentField:=CurrentField+3
- Else CurrentField:=6;
- ArrowUpKey:If CurrentField in [2,3,5,6] then CurrentField:=CurrentField-1
- Else CurrentField:=CurrentField+2;
- ArrowDnKey:If CurrentField in [1,2,4,5] then CurrentField:=CurrentField+1
- Else CurrentField:=CurrentField-2;
- End; {case}
- Until Scan in [EscKey,F2Key];
- Shutdown;
- End.