

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
14 messages in org.openoffice.fr.progRe: [prog] Re: Insertion texte dans ...| From | Sent On | Attachments |
|---|---|---|
| Alan | Jun 30, 2009 2:45 am | |
| Thibault Vataire | Jun 30, 2009 3:47 am | |
| Alan | Jul 1, 2009 5:42 am | |
| Bernard Marcelly | Jul 2, 2009 2:18 am | |
| Alan | Jul 2, 2009 7:29 am | |
| Bernard Marcelly | Jul 2, 2009 2:18 pm | |
| Alan | Jul 3, 2009 12:29 am | |
| Thibault Vataire | Jul 3, 2009 1:04 am | .odt |
| Alan | Jul 6, 2009 12:26 am | |
| Thibault Vataire | Jul 6, 2009 3:23 am | |
| Alan | Jul 6, 2009 6:29 am | |
| Alan | Jul 6, 2009 6:42 am | |
| Alan | Jul 7, 2009 3:26 am | |
| Thibault Vataire | Jul 7, 2009 5:10 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] Re: Insertion texte dans tableau | Actions... |
|---|---|---|
| From: | Thibault Vataire (tvat...@starxpert.fr) | |
| Date: | Jul 7, 2009 5:10:12 am | |
| List: | org.openoffice.fr.prog | |
Bonjour,
Le problème rencontré avec la fonction "ReplaceAll" et dû au fait que votre
curseur de navigation ne dispose pas de cette méthode : c'est le document qui
permet de faire appel à "ReplaceAll".
Pour savoir si un object dispose d'une méthode ou non, vous pouvez utiliser
l'outils Xray.
Ci-dessous vous trouverez un exemple d'utilisation de l'API de recherche qui, je
pense, correspond à ce que vous souhaitiez effectuer.
Sub Main
dim doc as object dim rDesc as object dim elem as object
doc = thisComponent 'on parametre le descripteur de recherche rDesc = doc.createReplaceDescriptor rDesc.searchString = "@" 'on recherche le premier element elem = doc.findFirst(rDesc) 'si un element est trouvé do while (not isNull(elem)) 'et qu'il est dans une cellule if (not isEmpty(elem.cell)) then 'on remplace le texte par le numéro de ligne elem.string = getCellRow(elem.cell.cellName) end if 'puis on recherche l'element suivant elem = doc.findNext(elem, rDesc) loop
End Sub
'récupère le numéro de ligne à partir d'un nom de cellule function getCellRow(aCellName as string) as long
dim result as long dim st as object dim so as new "com.sun.star.util.SearchOptions" dim searchRes as object dim startOffset as long
st = createUnoService("com.sun.star.util.TextSearch")
so.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
so.searchFlag = com.sun.star.util.SearchFlags.REG_NOSUB
so.searchString = "[:digit:]{1,}$"
st.setOptions(so)
searchRes = st.searchForward(aCellName, 0, 0)
if (searchRes.subRegExpressions = 1) then
startOffset = searchRes.startOffset(0)
result = cInt(mid(aCellName, startOffset + 1, (searchRes.endOffset(0) -
startOffset + 1)))
end if
getCellRow = result
end function
Cordialement,
T. Vataire
----- Mail Original ----- De: "Alan" <alan...@antsys.fr> À: pr...@fr.openoffice.org Envoyé: Mardi 7 Juillet 2009 12h26:46 GMT +02:00 Harare / Pretoria Objet: [prog] Re: Insertion texte dans tableau
Et voilà j'ai ma solution. Pour résoudre le problème, je simule la fonction chercher/remplacer. Je sélectionne au préalable la ligne de mon tableau.
Dim CellDest As Object
dim args1(18) as new com.sun.star.beans.PropertyValue args1(0).Name = "SearchItem.StyleFamily" args1(0).Value = 2 args1(1).Name = "SearchItem.CellType" args1(1).Value = 0 args1(2).Name = "SearchItem.RowDirection" args1(2).Value = true args1(3).Name = "SearchItem.AllTables" args1(3).Value = false args1(4).Name = "SearchItem.Backward" args1(4).Value = false args1(5).Name = "SearchItem.Pattern" args1(5).Value = false args1(6).Name = "SearchItem.Content" args1(6).Value = false args1(7).Name = "SearchItem.AsianOptions" args1(7).Value = false args1(8).Name = "SearchItem.AlgorithmType" args1(8).Value = 0 args1(9).Name = "SearchItem.SearchFlags" args1(9).Value = 71680 args1(10).Name = "SearchItem.SearchString" args1(10).Value = "(@)" args1(12).Name = "SearchItem.Locale" args1(12).Value = 255 args1(13).Name = "SearchItem.ChangedChars" args1(13).Value = 2 args1(14).Name = "SearchItem.DeletedChars" args1(14).Value = 2 args1(15).Name = "SearchItem.InsertedChars" args1(15).Value = 2 args1(16).Name = "SearchItem.TransliterateFlags" args1(16).Value = 1280 args1(17).Name = "SearchItem.Command" args1(17).Value = 3 args1(18).Name = "Quiet" args1(18).Value = true
For index_row = 1 to nb_rows - 1
args1(11).Name = "SearchItem.ReplaceString" args1(11).Value = "(" & index_row - 1 & ")" CellDest = Table.getCellRangeByPosition(0, index_row, nb_col - 1, index_row) Doc.CurrentController.Select(CellDest) dispatcher.executeDispatch(Frame, ".uno:Paste", "", 0, Array()) CellDest = Table.getCellRangeByPosition(0, index_row, nb_col - 1, index_row) Doc.CurrentController.Select(CellDest) dispatcher.executeDispatch(Frame, ".uno:ExecuteSearch", "", 0, args1())
Next
Un grand merci à tous ceux qui ont pris du temps pour lire. Et en espérant que ceci aidera quelqu'un d'autre.








.odt