| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- IMPLEMENTATION MODULE MiscFunctions;
- (*
- * ModBase
- * Release 3.0
- * By Don Fletcher & John McMonagle
- * (c) Copyright 1986 - 1991 PMI
- * P.O. Box 8402
- * Green Bay Wi 53308
- * All Rights Reserved
- *
- *)
- IMPORT StrEdit;
- CONST
- Tab = 11C;
- EOL = 36C;
- TYPE
- CHARSET =SET OF CHAR;
- PROCEDURE Trim(VAR str : ARRAY OF CHAR);
- (* Strips trailing blanks from a string *)
- BEGIN
- StrEdit.CutTrailingChars(' ',str);
- END Trim;
- PROCEDURE Upper(VAR str : ARRAY OF CHAR);
- BEGIN
- StrEdit.CAPstr(str);
- END Upper;
- PROCEDURE Alph(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN c IN CHARSET{'A'..'Z','a'..'z'};
- END Alph;
- PROCEDURE Digit(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN c IN CHARSET{'0'..'9'};
- END Digit;
- PROCEDURE AlphaNum(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN (Alph(c)) OR (Digit(c));
- END AlphaNum;
- PROCEDURE Punc(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN (NOT AlphaNum(c)) AND (c>=' ');
- END Punc;
- PROCEDURE Printable(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN c IN CHARSET{' '..'~'};
- END Printable;
- PROCEDURE IsLower(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN c IN CHARSET{'a'..'z'};
- END IsLower;
- PROCEDURE IsUpper(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN c IN CHARSET{'A'..'Z'};
- END IsUpper;
- PROCEDURE IsSpace(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN c IN CHARSET{' ',EOL,12C,15C,Tab};
- END IsSpace;
- PROCEDURE FieldName(str : ARRAY OF CHAR) : BOOLEAN;
- VAR
- legal : BOOLEAN;
- i : CARDINAL;
- BEGIN
- Trim(str);
- i := 0;
- WHILE (i<HIGH(str)) AND (str[i]#0C) DO
- INC(i);
- END;
- IF (i>0) AND (str[i]=0C) THEN
- DEC(i);
- END;
- legal := (i<10) AND (Alph(str[0]));
- WHILE (i>0) AND legal DO
- legal := FieldNameChar(str[i]);
- DEC(i);
- END;
- RETURN legal;
- END FieldName;
- PROCEDURE FieldNameChar(c : CHAR) : BOOLEAN;
- BEGIN
- RETURN (AlphaNum(c)) OR (c='_');
- END FieldNameChar;
- END MiscFunctions.
|