světNotes.cz

Ekvivalent @ReplaceSubstring v LotusScriptu
Novinky
20.03.2001 - Zdeněk Michálek

Nesmírně užitečnou funkcí formulového jazyka je @ReplaceSubstring a je kupodivu, že její ekvivalent nebyl přímo implementován i v LotusScriptu. Většina programátorů si jej samozřejmě napsala jako funkci, tady je jedna z poměrně efektivních implementací (pochází z diskuzního fóra).

Funkce má tři vstupní parametry:

sourcestr - prohledávaný řetězec
fromstr - nahrazovaný řetězec
tostr - nahrazující řetězec

Výstupem je nový (nahrazený) řetězec.

Například:
newString = ReplaceSubstring("abcdef", "b", "x")
vrátí newString s hodnotou "axcdef".

Function ReplaceSubstring(sourcestr As String, fromstr As String, tostr As String) As String
Dim tempstr As String
tempstr = sourcestr
If Len(fromstr) = 0 Then
ReplaceSubstring = sourcestr
Exit Function
End If
While Instr(tempstr, fromstr) <> 0
tempstr = Left(tempstr, Instr(tempstr, fromstr)-1) & tostr & Mid(tempstr, Instr(tempstr, fromstr)+Len(fromstr))
Wend
ReplaceSubstring = tempstr
End Function

Pozor na to, že funkce nepracuje na rozdíl od jejího ekvivalentu ve formulovém jazyku s "listy", resp. s poli jako jejich obdobou, ale pouze s řetězci.