String

The String: module provides string manipulation. All methods follow the ByRef convention — pre-declare a receiver variable and pass it as the last argument.


Call Result
String:Len(s, out) / String:Length(s, out) Length of s
String:Left(s, n, out) First n characters
String:Right(s, n, out) Last n characters
String:Mid(s, start, len, out) / String:Substring(s, start, len, out) Substring; start is 1-based
String:Replace(s, from, to, out) Replace all occurrences of from with to
String:Trim(s, out) Strip leading/trailing whitespace
String:Upper(s, out) Uppercase
String:Lower(s, out) Lowercase
String:Reverse(s, out) Reverse characters
String:Compare(a, b, out) -1 / 0 / 1 lexicographic
String:Contains(s, sub, out) true if sub found in s
String:Split(s, delim, out) Split into pre-declared List:String out
String:Join(delim, s1, s2, ..., out) Join strings with delimiter

String:Mid uses a 1-based start index (like BASIC), not 0-based.

Var:Number len;
String:Len("hello", len);
Konsol:Print(len);          // 5

Var:String result;
String:Upper("hello", result);
Konsol:Print(result);       // HELLO

String:Replace("hello world", "world", "KonsolScript", result);
Konsol:Print(result);       // hello KonsolScript

String:Mid("hello", 2, 3, result);
Konsol:Print(result);       // ell

List:String part;
String:Split("a,b,c", ",", part);
Var:Number sz;
List:Size(part, sz);        // 3
Var:String p0;
List:Get(part, 0, p0);
Konsol:Print(p0);           // a

Examples

// 11_string.ks — String module

Konsol:Print("=== String Module ===");

Var:String _ret = "";
Var:String s = "Hello, World!";
Konsol:Print("source: ${s}");

// Len
String:Len(s, _ret);
Konsol:Print("Len           = ${_ret}");

// Left / Right
String:Left(s, 5, _ret);
Konsol:Print("Left(5)       = ${_ret}");

String:Right(s, 6, _ret);
Konsol:Print("Right(6)      = ${_ret}");

// Mid (1-based start)
String:Mid(s, 8, 5, _ret);
Konsol:Print("Mid(8,5)      = ${_ret}");

// Replace
String:Replace(s, "World", "MINKS", _ret);
Konsol:Print("Replace       = ${_ret}");

// Trim
String:Trim("   spaces   ", _ret);
Konsol:Print("Trim          =| ${_ret} |");

// Upper / Lower
String:Upper(s, _ret);
Konsol:Print("Upper         = ${_ret}");

String:Lower(s, _ret);
Konsol:Print("Lower         = ${_ret}");

// Reverse
String:Reverse("abcdef", _ret);
Konsol:Print("Reverse       = ${_ret}");

// Compare
String:Compare("apple", "banana", _ret);
Konsol:Print("Compare(apple,banana) = ${_ret}");

String:Compare("banana", "apple", _ret);
Konsol:Print("Compare(banana,apple) = ${_ret}");

String:Compare("same", "same", _ret);
Konsol:Print("Compare(same,same)    = ${_ret}");

// Contains
String:Contains(s, "World", _ret);
Konsol:Print("Contains(World) = ${_ret}");

String:Contains(s, "xyz", _ret);
Konsol:Print("Contains(xyz)   = ${_ret}");

// Split
Konsol:Print("--- Split ---");
List:String parts;
String:Split("one,two,three,four", ",", parts);
Var:Number sz;
List:Size(parts, sz);
Var:String p0; Var:String p1; Var:String p2; Var:String p3;
List:Get(0, parts, p0); List:Get(1, parts, p1); List:Get(2, parts, p2); List:Get(3, parts, p3);
Konsol:Print("count  = ${sz}");
Konsol:Print("p0     = ${p0}");
Konsol:Print("p1     = ${p1}");
Konsol:Print("p2     = ${p2}");
Konsol:Print("p3     = ${p3}");

// Split on spaces
List:String words;
String:Split("alpha beta gamma", " ", words);
Var:Number wsz;
List:Size(words, wsz);
Var:String w0; Var:String w1; Var:String w2;
List:Get(0, words, w0); List:Get(1, words, w1); List:Get(2, words, w2);
Konsol:Print("split spaces count = ${wsz}");
Konsol:Print("${w0} ${w1} ${w2}");

// Join
Konsol:Print("--- Join ---");
String:Join(", ", "red", "green", "blue", _ret);
Konsol:Print("Join(,) = ${_ret}");

String:Join(" + ", "a", "b", "c", "d", _ret);
Konsol:Print("Join(+) = ${_ret}");

// Compose: split then rejoin with different delimiter
List:String segs;
String:Split("a-b-c-d", "-", segs);
Var:String a; Var:String b; Var:String c; Var:String d;
List:Get(0, segs, a); List:Get(1, segs, b); List:Get(2, segs, c); List:Get(3, segs, d);
String:Join(".", a, b, c, d, _ret);
Konsol:Print("split+rejoin = ${_ret}");