|
@@ -86,6 +86,42 @@ BEGIN
|
|
|
dst[n + m] := CHR(0)
|
|
dst[n + m] := CHR(0)
|
|
|
END Append;
|
|
END Append;
|
|
|
|
|
|
|
|
|
|
+PROCEDURE Equal (VAR s1, s2 : ARRAY OF CHAR) : BOOLEAN;
|
|
|
|
|
+VAR i, n1, n2 : INTEGER;
|
|
|
|
|
+BEGIN
|
|
|
|
|
+ n1 := Length(s1); n2 := Length(s2);
|
|
|
|
|
+ IF n1 # n2 THEN RETURN FALSE END;
|
|
|
|
|
+ i := 0;
|
|
|
|
|
+ WHILE i < n1 DO
|
|
|
|
|
+ IF s1[i] # s2[i] THEN RETURN FALSE END;
|
|
|
|
|
+ i := i + 1
|
|
|
|
|
+ END;
|
|
|
|
|
+ RETURN TRUE
|
|
|
|
|
+END Equal;
|
|
|
|
|
+
|
|
|
|
|
+PROCEDURE Pos (VAR pattern, s : ARRAY OF CHAR) : INTEGER;
|
|
|
|
|
+VAR i, j, np, ns : INTEGER;
|
|
|
|
|
+ found : BOOLEAN;
|
|
|
|
|
+BEGIN
|
|
|
|
|
+ np := Length(pattern);
|
|
|
|
|
+ ns := Length(s);
|
|
|
|
|
+ IF (np = 0) OR (np > ns) THEN RETURN 0 END;
|
|
|
|
|
+ i := 0;
|
|
|
|
|
+ WHILE i + np <= ns DO
|
|
|
|
|
+ j := 0; found := TRUE;
|
|
|
|
|
+ WHILE (j < np) AND found DO
|
|
|
|
|
+ IF s[i + j] # pattern[j] THEN
|
|
|
|
|
+ found := FALSE
|
|
|
|
|
+ ELSE
|
|
|
|
|
+ j := j + 1
|
|
|
|
|
+ END
|
|
|
|
|
+ END;
|
|
|
|
|
+ IF found THEN RETURN i + 1 END;
|
|
|
|
|
+ i := i + 1
|
|
|
|
|
+ END;
|
|
|
|
|
+ RETURN 0
|
|
|
|
|
+END Pos;
|
|
|
|
|
+
|
|
|
PROCEDURE Compare (VAR s1, s2 : ARRAY OF CHAR) : INTEGER;
|
|
PROCEDURE Compare (VAR s1, s2 : ARRAY OF CHAR) : INTEGER;
|
|
|
VAR i, n1, n2, n : INTEGER;
|
|
VAR i, n1, n2, n : INTEGER;
|
|
|
BEGIN
|
|
BEGIN
|