Bonjour,
en train de travailler à un ensemble de macros d'analyse de textes, je
bute sur un problème concernant les paragraphes. Dans le cas présent,
je souhaite trouver toutes les occurrences de mots contenus dans un
tableau dans un objet document. la contrainte est de pouvoir à chaque
occurrence trouvée déterminer le numéro du paragraphe (au sens
logique).
Il me semble avoir compris qu' il n'est pas possible d'obtenir
directement le numéro du paragraphe en cours à partir d'un Cursor.
j'ai donc cherché un contournement :
<code>
Sub searchTest()
oDocSource = setDocObject(sourceURL) 'document à analyser
oDocTemp = setDocObject("private:factory/swriter") 'doc temporaire
Dim searchDesc As Object
searchDesc = oDocTemp.createSearchDescriptor
searchDesc.SearchCaseSensitive = false
searchDesc.SearchWords = true
Dim indicePara As Long 'compteur de paragraphes
indicePara = 0
enum = oDocSource.Text.createEnumeration
WHILE enum.hasMoreElements
textElement = enum.NextElement
IF TextElement.supportsService("com.sun.star.text.Paragraph")
THEN
indicePara = indicePara + 1
oDocTemp.Text.setString(textElement.String)
'dicoArray contient la liste des mots à rechercher
'tailleDico est sa taille
Dim i As Long
FOR i = 1 TO tailleDico
searchDesc.searchString = dicoArray(i)
found = oDocTemp.findFirst(searchDesc)
Do While NOT isNull(found)
'msgbox("Para N° " & indicePara & " : " & found.String
& " (" &
dicoArray(i) & ")")
found = oDocTemp.findNext(found.End,
searchDesc)
Loop
NEXT i
END IF
WEND
oDocTemp.close(false)
oDocSource.close(true)
msgbox("oDocSource fermé")
End Sub
</code>
ça fonctionne à peu près, mais c'est trèèèèès lent.
il me semble que c'est la manipulation des paragraphes vers le
document temporaire qui ralentit énormément.
Donc si quelqu'un à une idée pour supprimer cette étape, ça m'intéresse.
Merci.
manuel
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]