Search code examples
phplibreoffice-basic

PHP str_ireplace in libreoffice basic


Does anybody know how to make function in Libreoffice basic like str_ireplace in PHP?
I want to use in my cell function.

str_ireplace(search - range of cells, replace - range of cells, text)

or at least str_replace


Solution

  • I made really simple function

    Function Str_ireplace(Search As Variant, Replace As Variant, Source As String)
    
      Dim Result As String
      Dim StartPos As Long
      Dim CurrentPos As Long
      Dim CurrentSearch As String
      Dim CurrentReplace As String
    
      Result = ""
    
      For Row = Lbound( Search, 1 ) To Ubound( Search, 1 )
        For Col = LBound(Search, 2) To UBound(Search, 2)
            StartPos = 1
            CurrentPos = 1
            CurrentSearch = Search(Row, Col)
            CurrentReplace = Replace(Row, Col)
            Result = ""
    
    
            Do While CurrentPos <> 0
                CurrentPos = InStr(StartPos, Source, CurrentSearch)
                If CurrentPos <> 0 Then
                    Result = Result + Mid(Source, StartPos, _
                    CurrentPos - StartPos)
                    Result = Result + CurrentReplace
                    StartPos = CurrentPos + Len(CurrentSearch)
                Else
                    Result = Result + Mid(Source, StartPos, Len(Source))
                End If                ' Position <> 0
            Loop
            Source = Result 
        Next 
      Next
    
    
      Str_ireplace = Result    
    End Function
    

    I used this as example: http://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Strings_(Runtime_Library)