MODULE Chk; (* * ModBase * Release 3.0 * By Don Fletcher & John McMonagle * (c) Copyright 1986 - 1991 PMI * BOX 8402 * Green Bay WI 54308-8402 * All Rights Reserved * *) FROM ModBase3 IMPORT DBFile,InitDBF,OpenDBF,DefaultFixUp; FROM DBIndxes IMPORT GoTop, OpenIndex, BuildIndex, DBIndex, NextRecord, PrevRecord, DisposeIndex,InitIndex,CurrentRec,CurrentKeyCh,CurrentKeyN,NumKeyType; FROM StrConv IMPORT CardinalToStr; FROM EnvironUtils IMPORT ParsedParam; FROM StringIO IMPORT ReadStr, WriteStr, WriteEol; FROM M2Strings IMPORT Assign, CompareStr,Concat; FROM BigSets IMPORT InitSet,InSet,InclSet; FROM Storage IMPORT ALLOCATE, DEALLOCATE; FROM NumTypes IMPORT Real8; FROM StrConv IMPORT RealToStr; IMPORT InitCompilerMods; CONST inp = 0; outp = 1; prn = 4; stderror = 2; VAR dbf : DBFile; ndx : DBIndex; Name: ARRAY[0..70] OF CHAR; PROCEDURE NDXChk(VAR ndx:DBIndex); VAR KeyStr,LastKey : ARRAY[ 0 .. 127 ] OF CHAR; str,string :ARRAY[0..127] OF CHAR; cardrec, Keys :CARDINAL; CurRec : LONGINT; ok, error, dumbool : BOOLEAN; set : POINTER TO ARRAY[0..4095] OF BITSET; BEGIN NEW( set); error:=FALSE; Keys:=1; InitSet(set^); GoTop( ndx ); InclSet(set^,VAL(CARDINAL,CurrentRec(ndx))); CurrentKeyCh( ndx, LastKey ); WHILE NextRecord( ndx, CurRec ) DO cardrec:=VAL(CARDINAL,CurRec); CurrentKeyCh(ndx,KeyStr); IF InSet(set^,cardrec) THEN error:=TRUE; Concat('duplicate entry for ',KeyStr,str); Concat(str,' record number ',str); CardinalToStr(cardrec,1,string); Concat(str,string,str); WriteEol(outp,str); ELSE InclSet(set^,cardrec); END; INC(Keys); IF CompareStr( LastKey, KeyStr ) > 0 THEN WriteEol(outp,'sort error in index'); error:=TRUE; (* HALT; *) END (*QMLBlÛBÛ“Qaþ)iÿo/0O_pO  oO0to/o/goiq¤–st\[w^ub]_a|}xz  OBJ SYM mod;..\sbm2dos\mod def;..\sbm2dos\def                MASM %S/R/MX,%O;                       WIN              ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @‘¢ÇOs2Error€>tËþU‰å]ËSYSTEMOs2Error*"ä”ZConversiU‰åSV6‹6Ä_ &‹6‹6;Gvé*ŠF6‹6Äw &‹46‹6Ä_&ˆ6‹6Ä_ &ÿé 6‹6Ä_&Æ^[]ÂU‰åƒì6ÿ66‰.QSVWÄ^&Æ¿'ŠF0ä‰Füé¹ ‰ø1Ò÷ñ‰ÇÿNü;~wéƒÿwå‹F‰Fú¸Fü‰Fþé¸ PèDÿÿFþué‹Fþ;Fúvé€~ué¸-Pè$ÿé"‹F1Ò÷÷¹ 1Ò÷ñ‰Ð0Pè ÿ¹ ‰ø1Ò÷ñ‰ÇƒÿwÙÄ^ &‹;Fvé Äv &‹4Ä^&Æ_^[Y6�‰ì]ÊU‰åSÿvÿv¸Pÿvÿvÿvÿv ÿv ÿvÿvèÿ[]ÊU‰åQS±ƒ~|é ‹F÷؉F±ÿvÿvQÿvÿvÿvÿv ÿv ÿvÿvèÆþ[Y]ÊU‰åPQSVÄ^ &ÇÄ^&Æé|Äv&‹4Ä^&ŠˆFÿ€~ÿ0sé[€~ÿ9véRÄ^ &�?™véÄ^ &�?™té€~ÿ6sé Ä^&Æé<Ä^ ¹ &‹÷áŠVÿ0öÐ-0Ä^ &‰Ä^&ÆééÄ^&ÿÄ^&‹;Fwévÿ^[Y]]ÊU‰åPQSVW¿Ä^&ÇÆFþé“Ä^ &ŠˆFÿG€~ÿ0séT€~ÿ9véKÄ^&�?™véÄ^&�?™té€~ÿ6sé¸é[ÆFþÄ^¹ &‹÷áŠVÿ0öÐ-0Ä^&‰é,€~ÿté ŠFþ´é(é€~ÿ té €~þué¸é ;~wéeÿŠFþ´_^[Y]]Ê U‰åPQSV±Ä^&‹;Fvé5Äv&‹4Ä^&€8-té Ä^&ÿ±éÄv&‹4Ä^&€8+téÄ^&ÿÿvÿvÿvÿvÿv�FþPÿvÿvè(þÄ^&€?uéG€ùué"�~þ€vé‹Fþ÷ØÄ^ &‰éÄ^&Æé�~þ€ré ‹FþÄ^ &‰éÄ^&Æ^[Y]]ÊU‰åƒìQSVWÆFûÆFýÆFü8¿ÇFþéž‹vþÄ^ &ŠÿFþ€ù0sé?€ù9vé7�ÿÌ vé�ÿÌ té:Nüsé¸éŽÆFû¸ ÷ç0í‰ÊÐ-0‰ÇéK€ùtéÇFþÿÿé;€~ûté,€ù-té ÆFýÆFü9é€ù+ué€ù ué¸é5é¸é,‹Fþ;FwéWÿ€~ýué ‰ø÷ØÄ^&‰éÄ^&‰?ŠFû´_^[Y‰ì]Ê €>tËþU‰å]ËSYSTEMConversiHPH|H¼H*(g(ïîæ e[§LongConv0123456789ABCDEFU‰åƒìQSVWÄ^&ÆÄ^ &Ç&ÇGÆFþÄ^&‹;Fvé4Äv&‹4Ä^&ŠˆFÿ€~ÿ+té Ä^&ÿé€~ÿ-té Ä^&ÿÆFþÄ^&‹;FwééÑÄv&‹4Ä^&ŠˆFÿ€~ÿ0sé €~ÿ9wéé­ŠFÿ0äº-0ƒÚ‰Fú‰VüÄ^ &�Ì }é~é9&�?ÌÌvé/Ä^ &�Ì té+&�?ÌÌté!ƒ~ü~é}éƒ~úwé Ä^&ÆégŠFÿ0ä-0‰Á»¸ ºRPÄv &ÿt&ÿ4š‰×‰Æ‰È‰ÚðúÄ^ &‰&‰WÄ^&ÿéÿ€~þuéÄ^ &‹&‹W÷؃Ò÷ÚÄ^ &‰&‰W_^[Y‰ì]ÊU‰åƒìQSVWÆFøÆFûÆFù8ÇFüÇFþ¿éØÄ^ &ŠˆFúG€~ú0séx€~ú9véo�~þÌ sévé)�~ü