Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Ciao a tutt*, e grazie di avermi fatto entrare nella ML!

La macro sotto gli asterischi ha lo scopo di suddividere un testo scritto
in un unico paragrafo in più paragrafi secondo alcune regole.

Però incontro due problemi:

1° PROBLEMA:
Come l'ho scritta verifica la presenza del carattere ",", separa il
paragrafo mettendoci un 'a capo' ... e poi prosegue col paragrafo
successivo, senza controllare il pezzo a destra della separazione (che
vorrei fosse considerato il successivo paragrafo da processare).
Come si può fare? Sarebbe meglio fare una procedura ricorsiva?

2° PROBLEMA:
Se eseguo diverse volte la macro, alla fine una finestra di dialogo mi dice:
"Operazione non supportata.
Chiamata di procedura non valida".

Questa è la macro:

************************************************************************************************

Dim LUNGMINSUB,LUNGMAXSUB as Integer

Sub Main()
    LUNGMINSUB = 21
    LUNGMAXSUB = 75
    call punteggiatura(",")
end sub

Sub Punteggiatura(sPunto)
    Dim Doc As Object
    Dim Enum As Object
    Dim TextElement As Object

    Doc = ThisComponent
    Enum = Doc.Text.createEnumeration

    While Enum.hasMoreElements
          TextElement = Enum.nextElement
        If TextElement.supportsService("
com.sun.star.text.Paragraph") Then
            if len(TextElement.String) > LUNGMAXSUB and
Instr(LUNGMINSUB,TextElement.String, sPunto) then
                TextElement.String =
Left(TextElement.String,Instr(LUNGMINSUB,TextElement.String, sPunto)) &
Chr(13) &_

Right(TextElement.String,len(TextElement.String)-Instr(LUNGMINSUB,TextElement.String,
sPunto)-1)
            end if
        End if
    Wend
End Sub
******************************************************************************************
Potete provare ad applicarla al seguente testo:

Fino a quando qualcuno non si è accorto che, con l'addomesticamento delle
piante prima e la coltivazione poi, potevamo avere cibo in abbondanza per
tutto il periodo dell'anno, quindi questa grossa rivoluzione ha risolto un
problema importantissimo come quello del cibo.

Il risultato desiderato è

Fino a quando qualcuno non si è accorto che,
con l'addomesticamento delle piante prima e la coltivazione poi,
potevamo avere cibo in abbondanza per tutto il periodo dell'anno,
quindi questa grossa rivoluzione ha risolto un problema importantissimo
come quello del cibo.

mentre ora fa:

Fino a quando qualcuno non si è accorto che,
con l'addomesticamento delle piante prima e la coltivazione poi, potevamo
avere cibo in abbondanza per tutto il periodo dell'anno, quindi questa
grossa rivoluzione ha risolto un problema importantissimo come quello del
cibo.


Grazie fin d'ora del vostro tempo!
Michele

-- 
Come cancellarsi: E-mail users+unsubscribe@it.libreoffice.org
Problemi? http://it.libreoffice.org/supporto/mailing-lists/come-cancellarsi/
Linee guida per postare + altro: http://wiki.documentfoundation.org/Local_Mailing_Lists/it
Archivio della lista: http://listarchives.libreoffice.org/it/users/
Tutti i messaggi inviati a questa lista vengono archiviati pubblicamente e non sono eliminabili

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.