home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / MFM_119C.ZIP / VIEWFILE.PAS < prev    next >
Pascal/Delphi Source File  |  1993-06-03  |  3KB  |  86 lines

  1. Unit ViewFile;
  2. {========================================================================}
  3. Interface
  4.   Uses
  5.     MfmDefs;
  6.   Procedure MfmViewFile(Viewer, FileToBeViewed : S12);
  7.   Procedure CallFileViewer;
  8.   Procedure ShellToDos;
  9. {========================================================================}
  10. Implementation
  11.   Uses
  12.     Display, Dos, Memory, Screen, Setup;
  13. {========================================================================}
  14. Procedure MfmViewFile(Viewer, FileToBeViewed : S12);
  15.   Var
  16.     PathToUtility : PathStr;
  17.     CmdLineParms : String;
  18.   Begin
  19.     If ReDirectTo = Console Then
  20.     Begin
  21.       If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
  22.       Begin
  23.         AnsiClearScreen;
  24.         Write('Loading File Viewer...');
  25.         SetMemTop(HeapPtr);
  26.         SwapVectors;
  27.         CmdLineParms := '';
  28.         If Pos(' ',Viewer) > 0 Then
  29.         Begin
  30.           CmdLineParms := Copy(Viewer,Pos(' ',Viewer)+1,255);
  31.           Viewer := Copy(Viewer,1,Pos(' ',Viewer)-1);
  32.         End;
  33.         PathToUtility := FSearch(Viewer,GetEnv('PATH'));
  34.         Exec(PathToUtility,FileAreaPath+FileToBeViewed+CmdLineParms);
  35.         SwapVectors;
  36.         SetMemTop(HeapEnd);
  37.         SetupScreen; DisplayScreen;
  38.       End;
  39.     End;
  40.   End;
  41. {========================================================================}
  42. Procedure CallFileViewer;
  43.   Begin
  44.     If ReDirectTo = Console Then
  45.     Begin
  46.       If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
  47.       Begin
  48.         FSplit(CurrentEntry^.FileName,ViewDir,ViewName,ViewExt);
  49.         ViewExt := Copy(ViewExt,2,3);
  50.         If (Pos(ViewExt,CompressedFileExt+PictureFileExt) Mod 3) = 1 Then
  51.         Begin
  52.           If (Pos(ViewExt,CompressedFileExt) Mod 3) = 1 Then
  53.           Begin
  54.             MfmViewFile(CompressedFileViewer,CurrentEntry^.FileName);
  55.           End
  56.           Else
  57.           Begin
  58.             MfmViewFile(PictureFileViewer,CurrentEntry^.FileName);
  59.           End;
  60.         End
  61.         Else
  62.         Begin
  63.           MfmViewFile(DefaultViewer,CurrentEntry^.FileName);
  64.         End;
  65.       End;
  66.     End;
  67.   End;
  68. {========================================================================}
  69. Procedure ShellToDos;
  70.   Var
  71.     ReturnCode : Integer;
  72.   Begin
  73.     AnsiClearScreen;
  74.     SetMemTop(HeapPtr);
  75.     WriteLn('Type EXIT to return...');
  76.     SwapVectors;
  77.     Exec(GetEnv('COMSPEC'), '');
  78.     SwapVectors;
  79.     SetMemTop(HeapEnd);
  80.     SetupScreen; DisplayScreen;
  81.   End;
  82. {========================================================================}
  83. Begin
  84. End.
  85. {========================================================================}
  86.