String/Text functions 3 (WinRunner, TSL)
Parent page: Service Functions – String / WinRunner
Remove extra space and tab characters within a string
public function str_shrink(in s, in separator) {
auto res, i, c, StringArray[];
res = str_trim(s);
if (res == "")
return(res);
res = str_replace(res, "\t", " ");
c = split(s, StringArray, " ");
if (c == 1)
return(StringArray[1]);
res = StringArray[1];
for (i=2;i<=c;i++)
res = res & separator & StringArray[i];
return(res);
}
Return position of a substring, looking from LEFT or RIGHT
public function str_index(in s, in sub_str, in dir) {
auto loc, result = 0;
auto src = s;
auto sub_len = length(sub_str);
if (dir == "LEFT")
return(index(src, sub_str));
if (dir != "RIGHT")
return(0);
while (loc = index(src, sub_str)) {
result = result + loc + sub_len - 1;
src = substr(src, loc + sub_len);
}
if (result > sub_len)
result = result - sub_len + 1;
return(result);
}
Matching strings
public function str_match_multy(in src_line, in regex_list) {
auto dvRegex[];
auto rc, i, c;
c = split(regex_list, dvRegex, ",");
if (c < 1) return(0);
for (i=1;i<=c;i++) {
rc = match(src_line, str_trim(dvRegex[i]));
if (rc>0) return(i);
}
return(0);
}
###
public function str_text_test(in s1, in s2, in regex_flag) {
auto rc;
if (toupper(regex_flag) == "REGEX")
rc = (match(s1, s2) > 0);
else
rc = (s1 == s2);
return(rc);
}

