1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?> 2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="util_XTextSearch" script:language="StarBasic"> 4cdf0e10cSrcweir 5cdf0e10cSrcweir 6cdf0e10cSrcweir'************************************************************************* 7cdf0e10cSrcweir' 8*f94e042dSAndrew Rist' Licensed to the Apache Software Foundation (ASF) under one 9*f94e042dSAndrew Rist' or more contributor license agreements. See the NOTICE file 10*f94e042dSAndrew Rist' distributed with this work for additional information 11*f94e042dSAndrew Rist' regarding copyright ownership. The ASF licenses this file 12*f94e042dSAndrew Rist' to you under the Apache License, Version 2.0 (the 13*f94e042dSAndrew Rist' "License"); you may not use this file except in compliance 14*f94e042dSAndrew Rist' with the License. You may obtain a copy of the License at 15*f94e042dSAndrew Rist' 16*f94e042dSAndrew Rist' http://www.apache.org/licenses/LICENSE-2.0 17*f94e042dSAndrew Rist' 18*f94e042dSAndrew Rist' Unless required by applicable law or agreed to in writing, 19*f94e042dSAndrew Rist' software distributed under the License is distributed on an 20*f94e042dSAndrew Rist' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 21*f94e042dSAndrew Rist' KIND, either express or implied. See the License for the 22*f94e042dSAndrew Rist' specific language governing permissions and limitations 23*f94e042dSAndrew Rist' under the License. 24cdf0e10cSrcweir' 25cdf0e10cSrcweir'************************************************************************* 26cdf0e10cSrcweir 27cdf0e10cSrcweir 28cdf0e10cSrcweir 29*f94e042dSAndrew Rist 30*f94e042dSAndrew Rist 31cdf0e10cSrcweir' Be sure that all variables are dimensioned: 32cdf0e10cSrcweiroption explicit 33cdf0e10cSrcweir 34cdf0e10cSrcweir 35cdf0e10cSrcweir 36cdf0e10cSrcweirSub RunTest() 37cdf0e10cSrcweir 38cdf0e10cSrcweir'************************************************************************* 39cdf0e10cSrcweir' INTERFACE: 40cdf0e10cSrcweir' com.sun.star.util.XTextSearch 41cdf0e10cSrcweir'************************************************************************* 42cdf0e10cSrcweirOn Error Goto ErrHndl 43cdf0e10cSrcweir Dim bOK As Boolean 44cdf0e10cSrcweir 45cdf0e10cSrcweir Dim _Locale As new com.sun.star.lang.Locale 46cdf0e10cSrcweir _Locale.Country = "US" 47cdf0e10cSrcweir _Locale.Language = "en" 48cdf0e10cSrcweir 49cdf0e10cSrcweir Test.StartMethod("setOptions()") 50cdf0e10cSrcweir bOK = true 51cdf0e10cSrcweir Dim aSearchOptions As new com.sun.star.util.SearchOptions 52cdf0e10cSrcweir aSearchOptions.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP 53cdf0e10cSrcweir aSearchOptions.searchFlag = com.sun.star.util.SearchFlags.ALL_IGNORE_CASE 54cdf0e10cSrcweir aSearchOptions.searchString = "h[ae](k|l|j)+o" 'Should work because of ALL_IGNORE_CASE! 55cdf0e10cSrcweir aSearchOptions.Locale = _Locale 56cdf0e10cSrcweir oObj.setOptions(aSearchOptions) 57cdf0e10cSrcweir Test.MethodTested("setOptions()", bOK) 58cdf0e10cSrcweir 59cdf0e10cSrcweir Test.StartMethod("searchForward()") 60cdf0e10cSrcweir bOK = true 61cdf0e10cSrcweir Dim _string As String 62cdf0e10cSrcweir Dim _result As Variant 63cdf0e10cSrcweir 64cdf0e10cSrcweir _string = "String with 'Hello' and 'Hallo'." 65cdf0e10cSrcweir _result = oObj.searchForward(_string, 0, len(_string)) 66cdf0e10cSrcweir if (ubound(_result.startOffset()) >= 0) then 67cdf0e10cSrcweir bOK = bOK AND _result.startOffset(0) = 13 68cdf0e10cSrcweir bOK = bOK AND _result.endOffset(0) = 18 69cdf0e10cSrcweir _result = oObj.searchForward(_string, 18, len(_string)) 70cdf0e10cSrcweir bOK = bOK AND _result.startOffset(0) = 25 71cdf0e10cSrcweir bOK = bOK AND _result.endOffset(0) = 30 72cdf0e10cSrcweir else 73cdf0e10cSrcweir Out.Log("No matches were found!") 74cdf0e10cSrcweir bOK = false 75cdf0e10cSrcweir end if 76cdf0e10cSrcweir Test.MethodTested("searchForward()", bOK) 77cdf0e10cSrcweir 78cdf0e10cSrcweir Test.StartMethod("searchBackward()") 79cdf0e10cSrcweir bOK = true 80cdf0e10cSrcweir _result = oObj.searchBackward(_string, len(_string), 0) 81cdf0e10cSrcweir if (ubound(_result.startOffset()) >= 0) then 82cdf0e10cSrcweir bOK = bOK AND _result.startOffset(0) = 30 83cdf0e10cSrcweir bOK = bOK AND _result.endOffset(0) = 25 84cdf0e10cSrcweir _result = oObj.searchBackward(_string, _result.endOffset(0), 0) 85cdf0e10cSrcweir bOK = bOK AND _result.startOffset(0) = 18 86cdf0e10cSrcweir bOK = bOK AND _result.endOffset(0) = 13 87cdf0e10cSrcweir else 88cdf0e10cSrcweir Out.Log("No matches were found!") 89cdf0e10cSrcweir bOK = false 90cdf0e10cSrcweir end if 91cdf0e10cSrcweir Test.MethodTested("searchBackward()", bOK) 92cdf0e10cSrcweir 93cdf0e10cSrcweirExit Sub 94cdf0e10cSrcweirErrHndl: 95cdf0e10cSrcweir Test.Exception() 96cdf0e10cSrcweir bOK = false 97cdf0e10cSrcweir resume next 98cdf0e10cSrcweirEnd Sub 99cdf0e10cSrcweir</script:module> 100