home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / MKMSG104 / MSGEXPRT / MSGEXPRT.PAS < prev   
Pascal/Delphi Source File  |  1994-01-09  |  2KB  |  104 lines

  1. Program MsgExprt;
  2. {$IFDEF WINDOWS}
  3. {$M 16384, 8196}
  4. {$ELSE}
  5. {$M 16384, 0, 655360}
  6. {$ENDIF}
  7.  
  8. {$I MKB.Def}
  9.  
  10. {$X+}
  11.  
  12. {$IFDEF WINDOWS}
  13. Uses MKWCrt,
  14. {$ELSE}
  15.   {$IFDEF OPRO}
  16.   Uses OpCrt,
  17.   {$ELSE}
  18.   Uses Crt,
  19.   {$ENDIF}
  20. {$ENDIF}
  21. MKMsgAbs, MKOpen, MKDos, MKstring;
  22.  
  23. Var
  24.   MsgOut: AbsMsgPtr;
  25.   TmpStr: String;
  26.   AreaId: String;
  27.   OutFile: Text;
  28.   OutName: String;
  29.  
  30. Const
  31.   StLen = 78;
  32.  
  33. Begin
  34. If ParamCount < 2 Then
  35.   Begin
  36.   WriteLn('Proper syntax is:');
  37.   WriteLn('MsgExprt OutPut.Txt MsgAreaId');
  38.   WriteLn;
  39.   WriteLn('   Squish MsgAreaId Example = SC:\Max\Msg\Muffin');
  40.   WriteLn('   Hudson MsgAreaId Example = H042C:\MK\MsgBase');
  41.   WriteLn('   *.Msg  MsgAreaId Example = FC:\Mail');
  42.   WriteLn('   Ezy    MsgAreaId Example = E0001C:\Ezy\MsgBase');
  43.   WriteLn('   Jam    MsgAreaId Example = JC:\Msg\General');
  44.   WriteLn;
  45.   Halt(1);
  46.   End;
  47. AreaId := Upper(ParamStr(2));
  48. OutName := Upper(ParamStr(1));
  49. WriteLn('Exporting to ', OutName);
  50. Assign(OutFile, OutName);
  51. ReWrite(OutFile);
  52. If IoResult <> 0 Then
  53.   Begin
  54.   WriteLn('Unable to create output file');
  55.   Halt(3);
  56.   End;
  57. If Not OpenMsgArea(MsgOut, AreaId) Then
  58.   Begin
  59.   WriteLn('Unable to open message base');
  60.   Halt(4);
  61.   End;
  62. WriteLn;
  63. WriteLn;
  64. MsgOut^.SeekFirst(1);
  65. While MsgOut^.SeekFound Do
  66.   Begin
  67.   WriteLn(OutFile, '--------------------------------------------------------------------------');
  68.   MsgOut^.MsgStartUp;
  69.   WriteLn(MsgOut^.GetMsgNum);
  70.   Write(OutFile, 'Message Number: ' + Long2Str(MsgOut^.GetMsgNum));
  71.   If MsgOut^.IsPriv Then
  72.     Write(OutFile,'  (Priv)');
  73.   If MsgOut^.IsRcvd Then
  74.     Write(OutFile, ' (Rcvd)');
  75.   WriteLn(OutFile);
  76.   Write(OutFile, 'From: ' + PadRight(MsgOut^.GetFrom,' ',45));
  77.   Write(OutFile, 'Date: ');
  78.   WriteLn(OutFile, ReformatDate(MsgOut^.GetDate, 'MM/DD/YY')
  79.     + ' ' + MsgOut^.GetTime);
  80.   WriteLn(OutFile, 'To: ' + MsgOut^.GetTo);
  81.   Write(OutFile, 'Subj: ');
  82.   WriteLn(OutFile,MsgOut^.GetSubj);
  83.   WriteLn(OutFile);
  84.   MsgOut^.MsgTxtStartUp;
  85.   TmpStr := MsgOut^.GetString(StLen);
  86.   While (Not MsgOut^.EOM) Do
  87.     Begin
  88.     WriteLn(OutFile, TmpStr);
  89.     TmpStr := MsgOut^.GetString(StLen);
  90.     End;
  91.   If Length(TmpStr) > 0 Then
  92.     WriteLn(OutFile, TmpStr);
  93.   If IoResult <> 0 Then;
  94.   MsgOut^.SeekNext;
  95.   End;
  96. Close(OutFile);
  97. If IoResult <> 0 Then
  98.   Begin
  99.   WriteLn('Error in output file');
  100.   Halt(3);
  101.   End;
  102. If Not CloseMsgArea(MsgOut) Then;
  103. End.
  104.