--- a/StringsLib.mod
+++ b/StringsLib.mod
@@ -15,6 +15,8 @@
(* 16.01.18, MRi: Zusammenfuegen von StrUtils und StringsLib *)
(* 25.03.18, MRi: PosChar eingefuegt *)
(* 30.03.18, MRi: CapChar eingefuegt *)
+ (* 29.06.18, MRi: AppendChar eingefuegt *)
+ (* 03.07.18, MRi: SubString eingefuegt *)
(*------------------------------------------------------------------------*)
(* Ref.: Lins, Charles; "The Modula-2 software component library Vol. 1" *)
(* Springer, Berlin (1988) *)
@@ -23,7 +25,7 @@
(* Licence : GNU Lesser General Public License (LGPL) *)
(*------------------------------------------------------------------------*)
- (* $Id: StringsLib.mod,v 1.1 2015/09/13 20:48:42 mriedl Exp mriedl $ *)
+ (* $Id: StringsLib.mod,v 1.3 2018/07/03 07:51:09 mriedl Exp mriedl $ *)
PROCEDURE Length(Str : ARRAY OF CHAR) : CARDINAL;
@@ -35,10 +37,6 @@
INC(i);
END;
RETURN i;
-(*
- * Str[HIGH(Str)+1]:=0C; (* Sicherheit ! *)
- * i:=0; WHILE (Str[i] # 0C) DO INC(i); END; RETURN i;
- *)
END Length;
PROCEDURE Delete(VAR Str : ARRAY OF CHAR;
@@ -80,6 +78,31 @@
INC(i);
END;
END Insert;
+
+PROCEDURE SubString(VAR Quelle : ARRAY OF CHAR;
+ s,e : CARDINAL;
+ VAR SubStr : ARRAY OF CHAR);
+
+ VAR i,j : CARDINAL;
+BEGIN
+ j:=0;
+ IF NOT ((e < s) OR (e > LENGTH(Quelle)) OR ((e-s+1) > HIGH(SubStr))) THEN
+ FOR i:=s TO e DO SubStr[j]:=Quelle[i]; INC(j); END;
+ END;
+ SubStr[j]:=0C;
+END SubString;
+
+PROCEDURE AppendChar(VAR str : ARRAY OF CHAR;
+ char : CHAR);
+
+ VAR l : CARDINAL;
+BEGIN
+ l := Length(str);
+ IF (l+1 <= HIGH(str)) THEN
+ str[l] := char;
+ str[l+1]:=0C;
+ END;
+END AppendChar;
PROCEDURE Append(VAR Str1 : ARRAY OF CHAR;
Str2 : ARRAY OF CHAR);