openoffice-utenti-it mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco <care...@gmail.com>
Subject [utenti-it] Starbasic - Macro di segmentazione del testo
Date Mon, 06 Oct 2014 18:20:40 GMT
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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message