Article View: comp.lang.modula2
Article #4272Module String for ISO
From: Albert Meier
Date: Tue, 31 May 1988 08:24
Date: Tue, 31 May 1988 08:24
75 lines
3723 bytes
3723 bytes
Expires:
Sender:
Reply-To: aplusl@bernina.UUCP (Albert Meier)
Followup-To:
Distribution: comp.lang.modula2
Organization: ETH Zuerich, Switzerland
Keywords: Modula-2, Library, Strings
Proposal of the Standard Strings Module
---------------------------------------
Module Strings provides several procedures for string manipulation.
DEFINITION MODULE String;
CONST
first = 0;
last = -1;
PROCEDURE Length (VAR str : ARRAY OF CHAR): INTEGER;
PROCEDURE Pos (VAR str : ARRAY OF CHAR; from : INTEGER; token :
ARRAY OF CHAR; caseSens : BOOLEAN): INTEGER;
PROCEDURE Insert (VAR str : ARRAY OF CHAR; at : INTEGER; token :
ARRAY OF CHAR);
PROCEDURE Delete (VAR str : ARRAY OF CHAR; start, length : INTEGER);
PROCEDURE Copy (VAR str : ARRAY OF CHAR; source : ARRAY OF CHAR;
start, length : INTEGER);
PROCEDURE Diff (VAR str : ARRAY OF CHAR; start, length : INTEGER;
token : ARRAY OF CHAR; CaseSens : BOOLEAN): INTEGER;
PROCEDURE Append (VAR front : ARRAY OF CHAR; tail : ARRAY OF CHAR);
END String.
Function Length returns the number of characters in str. A terminating
null character is not counted.
Function Occurs searches for the occurrence of token in str, starting
with the character at position from. The resulting value corresponds
to the position of the first matched character, or to last if token
does not occur in str. If parameter caseSens is true, upper and lower
case characters are considered as not identical, otherwise they are
considered as identical. Exception to this are all characters with an
ordinal value greater than 127.
Procedure Insert inserts string token into string str to the left of
the character at position at. If the resulting string is too long to
be stored, it will be truncated accordingly. If at > Length(str), the
appropriate number of spaces will first be appended to string str. If
at = last, token will be appended to str.
Delete deletes length characters from str starting at from. The
subsequent characters close up to fill the gap.
Copy copies a substring from source to str. The substring starts at
start and is length characters long. Characters in excess of the last
character in source are ignored. If there is not enough space, Copy
truncates the target string in the same way as Insert.
Compare compares a substring of str starting at start and of length
length with the string in token. If the result is negative, token is
less than the substring, if it is zero they are identical, and if it
is positive token is greater than the substring. The absolute value of
the result gives the character position at which the strings differ,
with the first character having the value one.
NB: Parameter str in Length, Occurs and Compare is a variable
parameter for reasons of efficiency. The string is not altered.
There is no point in using these functions with string
constants, since the results are already known.
SSS N N V V SNV SWISS STANDARDIZATION BODY
S NN N V V 149/UK2 Programming Languages
SSS N N N V V Chairman Albert Meier, CH-8906 Bonstetten
S N NN V V . Tel +41/1/700 30 37
SSS N N V . E-mail aplusl@komsys.ifi.ethz.ch.UUCP
Technical Details
Message-ID:
<457@ethz.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!cernvax!ethz!apluslShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!cernvax!ethz!aplusl From: aplusl@ethz.UUCP (Albert Meier) Newsgroups: comp.lang.modula2 Subject: Module String for ISO Summary: Proposal for Standard Module Strings to be standardized by ISO; Message-ID: <457@ethz.UUCP> Date: 31 May 88 08:24:37 GMT Organization: ETH Zuerich Lines: 75