Suchen Ersetzen dauert sehr lange (CALC)

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Devil
**
Beiträge: 44
Registriert: Mi, 08.07.2015 10:05
Wohnort: Hölle

Suchen Ersetzen dauert sehr lange (CALC)

Beitrag von Devil »

Ich durchlaufe folgenden Code mehrmals um ca 400 verschiedene Variablen in einem Calc Dokument zu suchen und zu ersetzen. Dies dauert allerdings sehr lange (ca 13 sec.). Im Writer bin ich das Problem umgangen, indem ich Benutzerfelder verwendet habe. Diese scheint es im Calc jedoch scheinbar nicht zu geben, weshalb ich auf "Textvariablen" zurückgreife. Gibt es da eine schnellere Methode oder etwas ähnliches wie Benutzerfelder?

Hier der Suchen und Ersetzencode:

Code: Alles auswählen

Sub Suchen_Ersetzen(zeile as String)

Doc = ThisComponent

aZeile = SPLIT(zeile, "=") 'Zeile aus Konfig Splitten
var = aZeile(0)
txt = aZeile(1)

Sheet = ThisComponent.Sheets(0)
Repl = Sheet.createReplaceDescriptor()
Repl.setSearchString("<</"+var+"/>>")
Repl.setReplaceString(txt)
Repl.SearchWords = False
Repl.SearchCaseSensitive = False
Repl.SearchRegularExpression = True
Sheet.replaceAll( Repl)

End Sub
Höllische Grüße
Devil
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Suchen Ersetzen dauert sehr lange (CALC)

Beitrag von Karolus »

Magst du uns den restlichen Code zeigen? - und vielleicht auch ein paar Zeilen deines `Konfig`-files?

sind die Ersetzungen alle individuell?
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Devil
**
Beiträge: 44
Registriert: Mi, 08.07.2015 10:05
Wohnort: Hölle

Re: Suchen Ersetzen dauert sehr lange (CALC)

Beitrag von Devil »

Hier ein Beispiel aus der Konfig:

User=Devil
Unterschrift=i.A. Satan
UserVorname=Devil
UserName=Satan

Diese werden so übergeben. Das aufrufen des Ganzen ohne das suchen und ersetzen dauert nur ca eine halbe sekunde.
In dem Konfig File werden immer wieder neue Daten hinterlegt, welche ersetzt werden. (allerdings nicht während das Makro läuft)
Höllische Grüße
Devil
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Suchen Ersetzen dauert sehr lange (CALC)

Beitrag von Karolus »

Devil hat geschrieben:Hier ein Beispiel aus der Konfig:

User=Devil
Unterschrift=i.A. Satan
UserVorname=Devil
UserName=Satan

Diese werden so übergeben. Das aufrufen des Ganzen ohne das suchen und ersetzen dauert nur ca eine halbe sekunde.
In dem Konfig File werden immer wieder neue Daten hinterlegt, welche ersetzt werden. (allerdings nicht während das Makro läuft)
Ich weiss nicht wie es anderen geht - ich fühle mich irgendwie veräppelt beim lesen dieser Daten

Im übrigen verschweigst du immer noch den massgeblichen Code.

oder häng besser gleich die verwendete Calcdatei, nebst kompletter Konfig an.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten