home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2src / charstuf.mod < prev    next >
Text File  |  1995-07-24  |  2KB  |  111 lines

  1. IMPLEMENTATION MODULE CharStuff;
  2. (*
  3.     Title     : Various string and character goodies
  4.     Author    : I.R. Matters  (Ian.Matters@anu.edu.au)
  5.     System    : Juergen Neuhoff's Modula-2 compiler on OS/2
  6.     Last Edit : 27 May 1995
  7. *)
  8.  
  9.  
  10. IMPORT ASCII, Strings;  (* this line updated 24 July 1995 J.Neuhoff *)
  11.  
  12.  
  13. PROCEDURE AppendChar (ch: CHAR; VAR s: ARRAY OF CHAR);
  14. (*
  15.   Append a character to a string
  16. *)
  17. VAR temp : ARRAY [0..1] OF CHAR;
  18. BEGIN
  19.   temp [0] := ch;
  20.   temp [1] := ASCII.nul;
  21.   Strings.Concat (s, temp, s);
  22. END AppendChar;
  23.  
  24.  
  25. PROCEDURE Pad (VAR s: ARRAY OF CHAR; len: CARDINAL; style: PadStyles);
  26. (*
  27.    Pad a string with spaces until it is the nominated length
  28. *)
  29. BEGIN
  30.   WHILE (Strings.Length (s) < len) DO
  31.  
  32.     IF ((style = PadLeft) OR (style = PadBoth)) THEN
  33.       Strings.Concat (' ', s, s);
  34.     END;  (* IF *)
  35.  
  36.     IF ((Strings.Length (s) < len) AND ((style = PadRight) OR (style = PadBoth))) THEN
  37.       Strings.Concat (s, ' ', s);
  38.     END;  (* IF *)
  39.  
  40.   END;  (* WHILE *)
  41. END Pad;
  42.  
  43.  
  44. PROCEDURE StrOfChars (n: CARDINAL; ch: CHAR; VAR s: ARRAY OF CHAR);
  45. (*
  46.     Create a string containing a number of characters
  47. *)
  48. VAR I: CARDINAL;
  49. BEGIN
  50.   s [0] := ASCII.nul;
  51.   FOR I := 1 TO n DO
  52.     AppendChar (ch, s);
  53.   END;  (* FOR *)
  54. END StrOfChars;
  55.  
  56.  
  57. PROCEDURE Spaces (n: CARDINAL; VAR s: ARRAY OF CHAR);
  58. (*
  59.     Create a string containing a number of spaces
  60. *)
  61. BEGIN
  62.   StrOfChars (n, ' ', s);
  63. END Spaces;
  64.  
  65.  
  66. PROCEDURE Dots (n: CARDINAL; VAR s: ARRAY OF CHAR);
  67. (*
  68.     Create a string containing a number of dot characters
  69. *)
  70. BEGIN
  71.   StrOfChars (n, CHR (183), s);
  72. END Dots;
  73.  
  74.  
  75. PROCEDURE Trim (VAR s: ARRAY OF CHAR);
  76. (*
  77.   Remove leading and trailing spaces from a string
  78. *)
  79. BEGIN
  80.  
  81.   (* Remove the leading white space *)
  82.  
  83.   WHILE (s [0] = ' ') DO
  84.     Strings.Delete (s, 1, 1);
  85.   END;  (* WHILE *)
  86.  
  87.   (* Remove the trailing white space *)
  88.  
  89.   WHILE ((s [Strings.Length (s) - 1] = ' ') AND (Strings.Length (s) > 0)) DO
  90.     Strings.Delete (s, Strings.Length (s) - 1, 1);
  91.   END;  (* WHILE *)
  92. END Trim;
  93.  
  94.  
  95. PROCEDURE Upper (VAR s: ARRAY OF CHAR);
  96. (*
  97.   Convert a string to upper case
  98. *)
  99. VAR i: LONGCARD;
  100. BEGIN
  101.   IF (Strings.Length (s) > 0) THEN
  102.     FOR i := 1 TO Strings.Length (s) DO
  103.       s [i - 1] := CAP (s [i - 1]);
  104.     END;  (* FOR *)
  105.   END;  (* IF *)
  106. END Upper;
  107.  
  108.  
  109. END CharStuff.
  110.  
  111.