Quería simplificar y poner el código python de manera más sencilla, pero a la hora de declarar "class" me da fallos y establecer por "def" no se hacerlo muy bien.
Una parte del código sería el siguiente:
Código: Seleccionar todo
import uno
import string
import socket
from com.sun.star.awt.FontWeight import BOLD
def div( ):
oDoc = XSCRIPTCONTEXT.getDocument()
oCC = oDoc.getCurrentController()
oSels = oCC.getSelection()
Selection = oSels.getByIndex(0)
strTmp = Selection.getString()
oText = oDoc.Text
HOST = '' # The remote host
PORT = 8001 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
div = strTmp.split();
for i in range(len(div)):
part=div[i]
s.send(part.encode('utf_8'))
data = s.recv(1024)
convert=int(data)
#Se realiza una divisón por los puntos
punto = strTmp.split(".");
for i in range (len(punto)):
if punto[i] != "":
blancos=punto[i].split(); # Se descompone la frase en palabras
#Parte de código para dividir 2 en 2
algo=len(blancos)-1 #Longitud de la frase -1
for k in range(algo):
part2= '"' + blancos[k] + " " + blancos[k+1] + '"' #Actual más siguiente (2 en 2)
s.send(part2.encode('utf_8'))
data2 = s.recv(1024)
convert2=int(data2)
#Parte de código para dividir 3 en 3
algo3=len(blancos)-2 #Longitud de la frase -3
for k in range(algo3):
part3= '"' + blancos[k] + " " + blancos[k+1] + " " + blancos[k+2] + '"' #Actual más siguiente (3 en 3)
s.send(part3.encode('utf_8'))
data3 = s.recv(1024)
convert3=int(data3)
#Parte de código para dividir 4 en 4
algo4=len(blancos)-2 #Longitud de la frase -4
for k in range(algo4):
part4= '"' + blancos[k] + " " + blancos[k+1] + " " + blancos[k+2] + " " + blancos[k+3] + '"' #Actual más siguiente (3 en 3)
s.send(part4.encode('utf_8'))
data4 = s.recv(1024)
convert4=int(data4)
s.close()
return None
Código: Seleccionar todo
if convert < 1000:
RDesc = oDoc.createSearchDescriptor()
RDesc.SearchString = part
Ranges = oDoc.findAll(RDesc)
for i in range(Ranges.Count):
Range = Ranges.getByIndex(i)
Starts = oText.compareRegionStarts(Range, Selection)
Ends = oText.compareRegionEnds(Range, Selection)
if (Starts < 1) and (Ends > -1):
Range.CharWeight = BOLD
Range.setPropertyValue( "CharColor", 16711680)