[Back to MAIL SWAG index] [Back to Main SWAG index] [Original]
{
After lots of controversy, and a lot of reteaching myself the meanings of
a few Words, I've redone my *.MSG reader....
}
Const MSGPRIVATE = $0001;
Const MSGConst = $0002;
Const MSGREAD = $0004;
Const MSGSENT = $0008;
Const MSGFile = $0010;
Const MSGFWD = $0020;
Const MSGorPHAN = $0040;
Const MSGKILL = $0080;
Const MSGLOCAL = $0100;
Const MSGHOLD = $0200;
Const MSGCRAP = $0400;
Const MSGFRQ = $0800;
Const MSGRRQ = $1000;
Const MSGCPT = $2000;
Const MSGARQ = $4000;
Const MSGURQ = $8000;
Type
Fido_FromType = Array [1..35] of Char;
Fido_toType = Array [1..35] of Char;
Fido_SubType = Array [1..71] of Char;
Fido_DateType = Array [1..19] of Char;
FidoMsgType = Record
From : Fido_FromType; (* 0 *)
toWhom : Fido_toType; (* 35 *)
Subject : Fido_SubType; (* 71 *)
AZDate : Fido_DateType; (* 142 *)
TimesRead : Word; (* 162 *)
Dest_Node : Word; (* 164 *)
orig_Node : Word; (* 166 *)
Cost : Word; (* 168 *)
orig_Net : Word; (* 170 *)
Dest_Net : Word; (* 172 *)
Date_Written : LongInt; (* 176 *)
Date_Arrived : LongInt; (* 180 *)
Reply : Word; (* 184 *)
Attr : Word; (* 186 *)
Up : Word; (* 188 *)
end;
MsgTxtPtr = ^MsgTxtType;
MsgTxtType = Array [1..65535] of Char;
Var
MessageFile : File;
Msg : FidoMsgType;
MsgTxt : MsgTxtPtr;
Procedure ReadMessage(Fname : PathStr);
Var
Left : Word;
begin
Assign(MessageFile,FName);
Reset(MessageFile,1);
BlockRead(MessageFile,Msg,190);
Left:=FileSize(MessageFile) - 190;
New(MsgTxt);
BlockRead(MessageFile,MsgTxt^,Left);
end;
{
This will correctly read in a *.MSG File in two parts..THe Header(stored in
Msg), and the Text which is a 64k buffer(stored in Pointer MsgTxt)...
}
[Back to MAIL SWAG index] [Back to Main SWAG index] [Original]