home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pascal / psppd100.zip / TESTEXE.PAS < prev    next >
Pascal/Delphi Source File  |  1992-09-16  |  2KB  |  73 lines

  1. {
  2.  
  3.                                                       ╔══════════════════╗
  4.                                                       ║   Test PPDInEXE  ║
  5.                                                       ║      Option      ║
  6.                                                       ║    Rev. 1.00     ║
  7.                                                       ╚══════════════════╝
  8.  
  9. }
  10.  
  11. {$F-} {$O-} {$A+} {$G-}
  12. {$V-} {$B-} {$X-} {$N+} {$E+}
  13.  
  14. {$I FINAL.PAS}
  15.  
  16. {$IFDEF FINAL}
  17.   {$I-} {$R-}
  18.   {$D-} {$L-} {$S-}
  19. {$ENDIF}
  20.  
  21. {$M 8192,100000,100000}
  22.  
  23. Program TestPPDatabaseInEXEOption;
  24.  
  25. Uses DBASE;
  26.  
  27. Const
  28.   CheckThisOption = 22;         {Where In The String Our Option(s) Are}
  29.  
  30. Procedure Error(ErrNum:Word);
  31. Begin
  32.   If ErrNum=0 Then Exit;        {No Error}
  33.   WriteLn('Database Failure, Error Report: ',DatabaseErrorMsg(ErrNum),'.');
  34.   Halt;
  35. End;
  36.  
  37. Var
  38.   DB:DBaseFile;         {Our Database (Object)}
  39.   St:String;            {A Data Structure to Hold Options}
  40.   A :Word;              {Error Check}
  41.   C :Char;              {Data Storage}
  42.  
  43. Begin
  44.   WriteLn;
  45.   WriteLn;
  46.  
  47.   {The following puts the string in the EXE file for our usage.}
  48.  
  49.   St:='Options Will Be Here * Now PPD-EXE Header>>'#43#0#0#0+Chr(InEXEFlag)
  50.  
  51.   {    ^Byte 0 (Data)        (Length of Data) Word ^^^^^     ^InEXE Marker}
  52.   {                  Remember to Store Words Reversed (Lo Hi)             }
  53.  
  54.   + Chr(CurVerHi)+Chr(CurVerLo)+'PPDATABASEEXE';
  55.  
  56.   {     ^ Version Number         ^ 18 Byte ID Code, Use Only Once in File }
  57.  
  58.   DB.Init;                                 {Must be called}
  59.   A:=DB.OpenDatabase('TESTEXE.EXE',0,0);   {Open our file}
  60.   If A<>0 Then Error(A);
  61.  
  62.   C:='-';                                       {The new data}
  63.   A:=DB.ModEXE(CheckThisOption-1,Addr(C),1);    {Change File}
  64.   {                           ^^  String Starts At 1, File At 0}
  65.  
  66.   Error(DB.CloseDatabase);
  67.  
  68.   If St[CheckThisOption]='*' Then
  69.     WriteLn('First Time EXE File Has Been Run.')
  70.   Else
  71.     WriteLn('Not The First Time EXE File Has Been Run.');
  72. End.
  73.