String/Text functions 4 (WinRunner, TSL)
Parent page: Service Functions – String / WinRunner
Find a substring defined by 2 tokens
public function str_get_text(in s, in text_before, in text_after) { auto index1, index2; auto result; if (text_before == "") index1 = 1; else index1 = index(s, text_before); if (index1 == 0) return(""); else index1 = index1 + length(text_before); if (text_after == "") index2 = length(s)+1; else index2 = index(s, text_after); if (index2 == 0) index2 = length(s); else index2 = index2 - index1; result = substr(s, index1, index2); return(result); }
Return substring by index
public function str_get_token(in s, in idx, in separator) { auto dtArray[]; if (s == "") return(""); split(s, dtArray, separator); return(dtArray[idx]); }
Split filepath – return folder path, file name and extension separately
public function str_fsplit(in fspec, inout _fspec[]) { auto i, elements, fname, fpath, path_array[]; elements = split (fspec, path_array, "\\"); fpath = path_array[1]; for (i=2;i<elements;i++) fpath = fpath & "\\" & path_array[i]; if (elements > 1) fpath = fpath & "\\"; else fpath = ""; _fspec["path"] = fpath; fname = path_array [elements]; elements = split (fname, path_array, "."); if (elements > 1) _fspec["ext"] = path_array [elements]; fname = path_array[1]; for (i=2;i<elements;i++) fname = fname & "." & path_array[i]; _fspec["name"] = fname; return(E_OK); }