Ciao a *!
Ho due problemi con la macro qui sotto.
Lo scopo è quello di suddividere un testo scritto in un unico paragrafo
in più paragrafi secondo alcune regole.
1° PROBLEMA:
Come l'ho scritta verifica la presenza del carattere ",", separa il
paragrafo mettendoci un 'a capo' e poi prosegua con il paragrafo
successivo, senza controllare il pezzo a destra della separazione (che è
diventato un nuovo paragrafo). Come si può fare? Sarebbe meglio fare una
procedura ricorsiva (non saprei come)?
2° PROBLEMA:
Se eseguo diverse volte la macro, alla fine TextElement.String mi da
Out-of-scope.
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:
Per procurarsi queste delizie i nostri antenati erano dediti al
nomadismo, facevano grossi spostamenti, estenuanti ricerche e
impiegavano tutto il loro tempo a raccogliere il cibo. Ok, ogni tanto
facevano anche qualche battuta di caccia e quando andava bene abbiamo
inventato la festa. 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 mille!!!
--
MC