5 messages in org.openoffice.fr.progRE: Re: [prog] Rechercher remplacer d...
FromSent OnAttachments
Cezame ConceptApr 26, 2006 4:58 am 
Cezame ConceptApr 27, 2006 6:26 am 
Laurent GodardApr 27, 2006 6:34 am 
Cezame ConceptApr 27, 2006 6:41 am 
Cezame ConceptApr 27, 2006 7:17 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:RE: Re: [prog] Rechercher remplacer dans enteteActions...
From:Cezame Concept (ceza@wanadoo.fr)
Date:Apr 27, 2006 7:17:02 am
List:org.openoffice.fr.prog

Je précise que le remplacer est en fait un coller ...; en effet je souhaite pouvoir remplacer le texte recherché par le contenu du presse papier (texte mis en forme, image ...)

Merci d'avance ...

-----Message d'origine----- De : Cezame Concept [mailto:ceza@wanadoo.fr] Envoyé : jeudi 27 avril 2006 15:42 À : pr@fr.openoffice.org Objet : RE: Re: [prog] Rechercher remplacer dans entete

Après de nombreux tests j'ai remarqué les choses suivantes ...

J'ai créé un document oWriter avec un entête contenant le mot "essai"

Dans le corps le mot "essai"

Ensuite j'ai créé un tableau contenant le mot "essai"

Cette fonction devrait permettre de remplacer "essai" partout dans le document oWriter entête et tableaux compris

J'ai modifié ma fonction comme suit :

Function RechercherRemplacerToutPressePapier(ByVal sMots As String, ByVal sRespecterCasse As Boolean, ByVal sMotEntier As Boolean) As Long

Dim oResultat As Object Dim oDispatcherLocal As Object Dim oIndex As Integer Dim oControleur As Object

Dim Arguments(0) As Object

Arguments(0) = MakePropertyValue("Hidden", False)

sMots = ConvertToAllowsString(sMots)

oSel = oDocument.CurrentController.frame oDispatcherLocal = CreateUnoService("com.sun.star.frame.DispatchHelper") oMonTexte = oDocument.getText() oControleur = oDocument.CurrentController

oJeCherche = oDocument.createSearchDescriptor With oJeCherche 'Definir la balise à rechercher dans le document OpenOffice Word .SearchString = sMots 'Distinguer les majuscules des minuscules dans la recherche .SearchCaseSensitive = sRespecterCasse 'Ne rechercher que des mots .SearchWords = sMotEntier 'Rechercher à reculons .SearchBackwards = False 'Faire une recherche avec la méthode des expressions régulières .SearchRegularExpression = True 'Rechercher des paragraphes d’un style donné par SearchString .SearchStyles = False 'Rechercher un texte similaire au texte cherché .SearchSimilarity = False End With

oResultat = oDocument.findAll(oJeCherche) For oIndex = 1 To oResultat.getCount() ' sélectionner la chaine de recherche oMonCurseur = oMonTexte.createTextCursorByRange(oResultat.getByIndex(oIndex - 1)) oControleur.select(oMonCurseur)

' Remplacement par un texte ' oMonCurseur.setString("Chaine de remplacement")

'Remplacement par le contenu du presse papier oDispatcherLocal.executeDispatch(oSel, ".uno:Paste", "", 0, Arguments) Next

RechercherRemplacerToutPressePapier = oResultat.getCount()

End Function

Avec cette fonction j'ai un plantage a chaque changement de type(entête corps ou tableau)

Si j'ai le mot dans l'entête ca plante au premier trouvé dans le corps

Si je supprime le mot recherché dans l'entête ca plante quand je passe a celui contenu dans le tableau ...

Merci de votre aide pour corriger cette fonction ...