MISCFUNC.LST 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. Listing:
  2. 1 IMPLEMENTATION MODULE MiscFunctions;
  3. 2
  4. 3 (*
  5. 4 * ModBase
  6. 5 * Release 3.0
  7. 6 * By Don Fletcher & John McMonagle
  8. 7 * (c) Copyright 1986 - 1991 PMI
  9. 8 * P.O. Box 8402
  10. 9 * Green Bay Wi 53308
  11. 10 * All Rights Reserved
  12. 11 *
  13. 12 *)
  14. 13
  15. 14 IMPORT StrEdit;
  16. 15
  17. 16 CONST
  18. 17 Tab = 11C;
  19. 18 EOL = 36C;
  20. 19 TYPE
  21. 20 CHARSET =SET OF CHAR;
  22. ***** ^ not supported yet
  23. 21
  24. 22 PROCEDURE Trim(VAR str : ARRAY OF CHAR);
  25. ***** ^ not supported yet
  26. 23 (* Strips trailing blanks from a string *)
  27. 24 BEGIN
  28. 25 StrEdit.CutTrailingChars(' ',str);
  29. ***** ^ not supported yet
  30. ***** ^ not supported yet
  31. ***** ^ not supported yet
  32. 26 END Trim;
  33. ***** ^ not supported yet
  34. 27
  35. 28 PROCEDURE Upper(VAR str : ARRAY OF CHAR);
  36. ***** ^ not supported yet
  37. 29 BEGIN
  38. 30 StrEdit.CAPstr(str);
  39. ***** ^ not supported yet
  40. ***** ^ not supported yet
  41. ***** ^ not supported yet
  42. 31 END Upper;
  43. ***** ^ not supported yet
  44. 32
  45. 33 PROCEDURE Alph(c : CHAR) : BOOLEAN;
  46. 34 BEGIN
  47. 35 RETURN c IN CHARSET{'A'..'Z','a'..'z'};
  48. ***** ^ not supported yet
  49. 36 END Alph;
  50. 37
  51. 38 PROCEDURE Digit(c : CHAR) : BOOLEAN;
  52. 39 BEGIN
  53. 40 RETURN c IN CHARSET{'0'..'9'};
  54. 41 END Digit;
  55. 42
  56. 43 PROCEDURE AlphaNum(c : CHAR) : BOOLEAN;
  57. 44 BEGIN
  58. 45 RETURN (Alph(c)) OR (Digit(c));
  59. 46 END AlphaNum;
  60. 47
  61. 48 PROCEDURE Punc(c : CHAR) : BOOLEAN;
  62. 49 BEGIN
  63. 50 RETURN (NOT AlphaNum(c)) AND (c>=' ');
  64. 51 END Punc;
  65. 52
  66. 53 PROCEDURE Printable(c : CHAR) : BOOLEAN;
  67. 54 BEGIN
  68. 55 RETURN c IN CHARSET{' '..'~'};
  69. 56 END Printable;
  70. 57
  71. 58 PROCEDURE IsLower(c : CHAR) : BOOLEAN;
  72. 59 BEGIN
  73. 60 RETURN c IN CHARSET{'a'..'z'};
  74. 61 END IsLower;
  75. 62
  76. 63 PROCEDURE IsUpper(c : CHAR) : BOOLEAN;
  77. 64 BEGIN
  78. 65 RETURN c IN CHARSET{'A'..'Z'};
  79. 66 END IsUpper;
  80. 67
  81. 68 PROCEDURE IsSpace(c : CHAR) : BOOLEAN;
  82. 69 BEGIN
  83. 70 RETURN c IN CHARSET{' ',EOL,12C,15C,Tab};
  84. 71 END IsSpace;
  85. 72
  86. 73 PROCEDURE FieldName(str : ARRAY OF CHAR) : BOOLEAN;
  87. 74 VAR
  88. 75 legal : BOOLEAN;
  89. 76 i : CARDINAL;
  90. 77 BEGIN
  91. 78 Trim(str);
  92. 79 i := 0;
  93. 80 WHILE (i<HIGH(str)) AND (str[i]#0C) DO
  94. 81 INC(i);
  95. 82 END;
  96. 83 IF (i>0) AND (str[i]=0C) THEN
  97. 84 DEC(i);
  98. 85 END;
  99. 86 legal := (i<10) AND (Alph(str[0]));
  100. 87 WHILE (i>0) AND legal DO
  101. 88 legal := FieldNameChar(str[i]);
  102. 89 DEC(i);
  103. 90 END;
  104. 91 RETURN legal;
  105. 92 END FieldName;
  106. 93
  107. 94 PROCEDURE FieldNameChar(c : CHAR) : BOOLEAN;
  108. 95 BEGIN
  109. 96 RETURN (AlphaNum(c)) OR (c='_');
  110. 97 END FieldNameChar;
  111. 98
  112. 99 END MiscFunctions.
  113. 12 errors