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]

Répondre à