| 123456789101112131415161718192021222324252627282930313233343536 |
- MODULE TDynStr;
- // DynamicStrings (core subset) + SysStorage. Exit 42.
- FROM DynamicStrings IMPORT String, InitString, KillString, Length,
- ConCat, Add, Equal, EqualArray, CopyOut, char, Mult, Slice,
- Index, RIndex, ToUpper, ReplaceChar, Dup, RemoveWhitePostfix;
- FROM SYSTEM IMPORT ADDRESS;
- IMPORT SysStorage;
- VAR ExitCode : INTEGER;
- VAR s, t, u : String;
- VAR p : ADDRESS;
- VAR buf : ARRAY [0..63] OF CHAR;
- VAR n : CARDINAL;
- BEGIN
- SysStorage.ALLOCATE(p, 16);
- SysStorage.DEALLOCATE(p, 16);
- s := InitString("Hello");
- t := InitString(" World");
- s := ConCat(s, t); (* "Hello World" *)
- u := Add(s, InitString("!")); (* new "Hello World!" *)
- n := Length(u); (* 12 *)
- IF Equal(s, InitString("Hello World")) THEN END;
- IF EqualArray(s, "Hello World") THEN END;
- s := ToUpper(s); (* "HELLO WORLD" *)
- s := ReplaceChar(s, "L", "l"); (* "HEllO WORlD" *)
- CopyOut(buf, s);
- t := Mult(InitString("ab"), 3); (* "ababab" *)
- IF Length(t) = 6 THEN END;
- t := KillString(t);
- s := KillString(s);
- u := KillString(u);
- IF n = 12 THEN ExitCode := 42 ELSE ExitCode := 1 END
- END TDynStr.
|