Contributor: MARK LEWIS
{
MARK LEWIS
> I've been playing with those files in MKMSG101.ZIP ... I've had
> them for awhile, but cannot get them to work.
> All I'm trying to do is make a simple message in FIDO format for
> my BBS. Does anyone have any examples?
little to no error checking... tossed together from part(s) of the sample
WRITEMSG.PAS example that comes with MKMSGSRC...
}
program sample_MKMSG_code;
{ reads a text file specified on the command line and posts it
to specified directory in *.MSG format. }
Uses
DOS, CRT, MKString, MKGlobt,
MKMsgAbs, MKFile, MKDos, MKMsgFid;
Var
TheMSG : AbsMsgPtr;
Error : Boolean;
MSGDir,
TheName,
TheLine : String;
TheFile : Text;
MSGNum : Word;
Begin
If ParamCount < 2 Then
Begin
Writeln('Usage : ' + Paramstr(0) + ' ');
halt(1);
End;
Error := False;
MSGDir := WithBackSlash(Upper(Paramstr(1)));
TheName := Upper(Paramstr(2));
Assign(TheFile, TheName);
{$I-}
Reset(TheFile);
{$I+}
Error := IOResult <> 0;
If Not Error Then
Begin
TheMSG := New(FidoMsgPtr, Init);
TheMSG^.SetMsgPath(MSGDir);
Error := (TheMSG^.OpenMsgBase <> 0);
If Not Error Then
Begin
TheMSG^.SetMailType(mmtNormal);
TheMSG^.StartNewMsg;
TheMSG^.SetFrom('SysOp');
TheMSG^.SetTo('ALL');
TheMSG^.SetSubj(TheName);
TheMSG^.SetPriv(False);
TheMSG^.SetDate(DateStr(GetDosDate));
TheMSG^.SetTime(TimeStr(GetDosDate));
TheMSG^.SetLocal(True);
TheMSG^.SetEcho(False);
TheMSG^.SetRefer(0);
While Not EOF(TheFile) Do
Begin
ReadLn(TheFile, TheLine);
TheMSG^.DoStringLn(TheLine);
End;
Error := TheMSG^.WriteMsg <> 0;
If Not Error Then
Begin
MsgNum := TheMSG^.GetMsgNum;
Writeln('File ', TheName, ' posted to Area ', MSGDir, ' as MSG # ',
MSGNum,'.');
End
Else
Begin
Writeln('Message Creation Error!');
Halt(4);
End;
If TheMSG^.CloseMsgBase <> 0 Then; {Close msg base}
End
Else
Begin
Writeln('Cannot Open Message Area ', MSGDir, '!');
Dispose(TheMSG, Done); {Dispose of the object pointer}
Halt(3);
End;
Dispose(TheMSG, Done); {Dispose of the object pointer}
End
Else
Writeln('OOPS! Cannot Locate File ', TheName, '!');
End.