home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
modula2
/
strlib.def
< prev
next >
Wrap
Text File
|
1987-01-08
|
4KB
|
92 lines
(************************************************************************)
(* *)
(* Requires MRI Modula2 *)
(* *)
(* Strlib: *)
(* Library module to handle strings. Included is *)
(* terminal I/O, string length, assignment, conc- *)
(* atention, insertion, deletion, alteration and *)
(* the ability to select portions of a string. *)
(* *)
(* Verson : *)
(* 1.0 ; November 16, 83 ; Namir C. Shammas *)
(* 1.1 ; November 21, 84 ; Walter Maner *)
(* *)
(************************************************************************)
DEFINITION MODULE Strlib;
EXPORT QUALIFIED Len,StringIs,ShowString,StringAdd,StringDelete,StringPos,
StringLeft,StringRight,StringMid,StringRemove,StringInsert,
StringReplace,StringChange,StringAlter,InputString,eos;
CONST
(* End Of String *)
eos = 0C;
PROCEDURE Len(Str : ARRAY OF CHAR):CARDINAL;
(* Obtain the number of characters in a string. *)
PROCEDURE StringIs (VAR Str1 : ARRAY OF CHAR; Str2 : ARRAY OF CHAR);
(* Assign an array of characters appended by an eos. *)
PROCEDURE ShowString(Str : ARRAY OF CHAR );
(* Display the string *)
PROCEDURE StringAdd (VAR Str1 : ARRAY OF CHAR; Str2 : ARRAY OF CHAR );
(* Concatenate string Str2 to Str1 *)
PROCEDURE StringDelete(VAR Str : ARRAY OF CHAR ; First,Last : CARDINAL);
(* Delete a portion of a string STARTING at 'Fisrt' and ENDING at
'Last' (included) *)
PROCEDURE StringPos(Str1,Str2 : ARRAY OF CHAR ; Start : CARDINAL):CARDINAL;
(* Function that returns the position of 'sub-string' Str2 in string
Str1. The search begins at position 'Start'. *)
PROCEDURE StringLeft(VAR Str1 : ARRAY OF CHAR ;
Str2 : ARRAY OF CHAR; Count : CARDINAL);
(* Pick the 'Count' leftmost characters of string Str2 and store it in
string Str1. *)
PROCEDURE StringRight(VAR Str1 : ARRAY OF CHAR ;
Str2 : ARRAY OF CHAR; Count : CARDINAL);
(* Pick the 'Count' rightmost characters of string Str2 and store it in
string Str1. *)
PROCEDURE StringMid(VAR Str1 : ARRAY OF CHAR ;
Str2 : ARRAY OF CHAR; Start, Count : CARDINAL);
(* Pick 'Count' characters starting at position 'Start' in string
Str2 and store it in string Str1. *)
PROCEDURE StringRemove(VAR Str1 : ARRAY OF CHAR; Str2 : ARRAY OF CHAR);
(* Remove ALL occurences of sub-string Str2 in string Str1 and update
the latter string . *)
PROCEDURE StringInsert(VAR Str1 : ARRAY OF CHAR; Str2 : ARRAY OF CHAR;
Start : CARDINAL);
(* Insert sub-string Str2 in string Str1 at position 'Start'. The
characters at position 'Start' and above are moved. *)
PROCEDURE StringReplace(VAR Str1 : ARRAY OF CHAR; Str2,Str3 : ARRAY OF CHAR);
(* Replace ALL occurences of sub-string Str2 with sub-string Str3 in the
string Str1. *)
PROCEDURE StringChange(VAR Str1 : ARRAY OF CHAR; Str2,Str3 : ARRAY OF CHAR;
Start,Repeat:CARDINAL);
(* Replace 'Repeat' times the occurence of sub-string Str2 by Str3 in
string Str1. The action taken starts at position 'Start'. *)
PROCEDURE StringAlter(VAR Str1 : ARRAY OF CHAR; Str2 : ARRAY OF CHAR;
Start : CARDINAL);
(* This procedure overwrites the portions of string Str1 starting at
position 'Start' and for the length of sub-string Str2. *)
PROCEDURE InputString (VAR Str : ARRAY OF CHAR);
(* Read string from ketboard. *)
END Strlib.