{ MCi Code routines written for data areas, logon config, file system, menuing system, etc, etc .. gains x/y pos, attribs, etc from mci files. written on sept 9th, 1998 by skaboy101 } {$I DIRECT.INC} unit dataproc; interface uses dos,gentypes,subs1,subs2,gensubs,configrt,modem,fileLock, dosmem,crt; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} const dMaxCodes = 25; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} type dMciDataRec = record code : string[2]; attr : byte; xPos : byte; yPos : byte; end; dMciArray = array[1..dMaxCodes] of dMciDataRec; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} var dMciData : ^dMciArray; dMciTotal : 0..dMaxCodes; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} procedure dInitMciMem(init : boolean); procedure dResetMciCodes; procedure dAddMciCode(code : string); procedure dShowMciFile(fileName : string); {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} implementation {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} procedure dInitMciMem(init : boolean); begin if (init=true) then begin new(dMciData); fillChar(dMciData^,sizeOf(dMciData^),0); end else dispose(dMciData); end; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} procedure dResetMciCodes; var dCount : byte; begin dMciTotal := 0; fillChar(dMciData^,sizeOf(dMciData^),0); for dCount := 1 to dMaxCodes do begin dMciData^[dCount].xPos := 1; dMciData^[dCount].yPos := 1; dMciData^[dCount].attr := 7; end; end; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} procedure dAddMciCode(code : string); begin if (dMciTotal#26) do begin if (dBuff[dCount]='|') then begin dFound := false; dCode := dBuff[dCount+1]+dBuff[dCount+2]; for dMciCount := 1 to dMciTotal do begin if (match(dCode,dMciData^[dMciCount].code)=true) then begin dMciData^[dMciCount].xPos := whereX; dMciData^[dMciCount].yPos := whereY; dMciData^[dMciCount].attr := textAttr; inc(dCount,2); for dTemp := 1 to 3 do dShowChar(' '); dFound := true; end; end; if not dFound then dShowChar('|'); end else dShowChar(dBuff[dCount]); inc(dCount); end; end; begin fileName := correct_dir(cfg.textFileDir+fileName); if not exist(fileName) then begin sendCr(^M'Error, Infusion cannot find the datainput file '+fileName); sendCr('Please notify sysop of this...'); exit; end; { dos_getMem(dBuff,sizeOf(dBuffArray));} nAssign(dFile,fileName); reset(dFile,1); repeat fillChar(dBuff,sizeOf(dBuff),0); nBlockRead(dFile,dBuff,sizeOf(dBuff),dRead); dParseRange; until (eof(dFile)=true) or (hungUpOn=true) or (dRead<1); { dos_freeMem(dBuff);} nClose(dFile); end; {::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::} begin end.