home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / READSTR.ZIP / KB.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1986-08-27  |  3.4 KB  |  106 lines

  1. {$V-,K-,C-,R+}
  2. {$I KBMISC}
  3. {$I READ.MOD}
  4.  
  5. Procedure Shutdown;
  6. Begin
  7.  ClrScr;
  8.  Cursor(on);
  9. End;
  10.  
  11.  
  12. { * * * * *   M A I N   P R O G R A M   B L O C K   * * * * * }
  13.  
  14. {global variables for main program block}
  15. Const
  16.  ScanExitSet:ByteSetType=[EscKey,EnterKey,ArrowLfKey,ArrowRtKey,ArrowUpKey,
  17.                           ArrowDnKey,HomeKey,EndKey,FullStringExit,F2Key,
  18.                           CtrlArrowLfKey,CtrlArrowRtKey];
  19. Var
  20.  Scan:Byte;
  21.  Ascii:char;
  22.  CurrentField:Byte;
  23.  Option:char;
  24.  Cpos:Array [1..6] of Byte;
  25.  TempString:String80;
  26.  RealNumber:Real;
  27.  IntegerNumber:Integer;
  28.  ByteNumber:Byte;
  29.  JulDate:JulType;
  30.  DayPartTime:Integer;
  31.  
  32.    Procedure ReadSomething;
  33.    Begin
  34.       Case CurrentField of
  35.          1:ReadString(Option,On,On,Off,On,On,1,1,18,5,ScanExitSet,Scan,[],ascii,
  36.                       cpos[1],TempString,'(&&&)&&&-&&&& ext:####');
  37.          2:ReadReal(Option,On,On,On,On,On,2,2,18,9,ScanExitSet,Scan,[],ascii,
  38.                     8,4,cpos[2],RealNumber);
  39.          3:ReadInt(Option,On,On,On,On,On,3,3,18,14,ScanExitSet,Scan,[],ascii,
  40.                    6,cpos[3],IntegerNumber);
  41.          4:ReadByte(Option,On,On,On,On,4,4,60,5,ScanExitSet,Scan,[],ascii,
  42.                     3,cpos[4],ByteNumber);
  43.          5:ReadDate(Option,On,5,5,60,9,ScanExitSet,scan,[],Ascii,cpos[5],
  44.                     JulDate,3,'N');
  45.          6:ReadTime(Option,On,Off,0,6,6,60,14,ScanExitSet,Scan,[],ascii,
  46.                     cpos[6],DayPartTime);
  47.       End; {case}
  48.    End;
  49.  
  50.    Procedure SetUpScreen;
  51.    Begin
  52.     QWrite('Read String:',6,5,0,0);
  53.     QWrite('Read Real:',8,9,0,0);
  54.     QWrite('Read Integer:',5,14,0,0);
  55.     QWrite('Read Byte:',50,5,0,0);
  56.     QWrite('Read Date:',50,9,0,0);
  57.     QWrite('Read Time:',50,14,0,0);
  58.     TempString:='503';             Cpos[1]:=4;
  59.     RealNumber:=1234567.321;       Cpos[2]:=1;
  60.     IntegerNumber:=12345;          Cpos[3]:=1;
  61.     ByteNumber:=16;                Cpos[4]:=1;
  62.     JulDate.Day:=300;              Cpos[5]:=1;
  63.     JulDate.Year:=1986;
  64.     DayPartTime:=5355; { 7:26:15 } Cpos[6]:=1;
  65.     Option:='W';
  66.     For CurrentField:=1 to 6 do ReadSomething;
  67.     Option:='R';
  68.     CurrentField:=1;
  69.    End;
  70.  
  71. Begin
  72.  Initialize;
  73.  SetUpScreen;
  74.  Repeat
  75.     ReadSomething;
  76.     Case Scan of
  77.         CtrlArrowLfKey,ArrowLfKey:
  78.            Case CurrentField of
  79.               4..6:CurrentField:=CurrentField-3;
  80.               2..3:CurrentField:=CurrentField+2;
  81.               1:CurrentField:=6;
  82.            End; {case}
  83.        CtrlArrowRtKey,ArrowRtKey:
  84.           Case CurrentField of
  85.              1..3:CurrentField:=CurrentField+3;
  86.              4..5:CurrentField:=CurrentField-2;
  87.              6:CurrentField:=1;
  88.           End; {case}
  89.        Enterkey,FullStringExit:
  90.           Begin
  91.            CurrentField:=succ(currentField);
  92.            If CurrentField=7 then CurrentField:=1;
  93.           End;
  94.        HomeKey:If CurrentField in [4..6] then CurrentField:=CurrentField-3
  95.                Else CurrentField:=1;
  96.        EndKey:If CurrentField in [1..3] then CurrentField:=CurrentField+3
  97.               Else CurrentField:=6;
  98.        ArrowUpKey:If CurrentField in [2,3,5,6] then CurrentField:=CurrentField-1
  99.                   Else CurrentField:=CurrentField+2;
  100.        ArrowDnKey:If CurrentField in [1,2,4,5] then CurrentField:=CurrentField+1
  101.                   Else CurrentField:=CurrentField-2;
  102.     End; {case}
  103.  Until Scan in [EscKey,F2Key];
  104.  Shutdown;
  105. End.
  106.