suchen ersetzen von ganzen werten/wörtern

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: suchen ersetzen von ganzen werten/wörtern

von kannenklaus » Mo, 16.01.2006 14:21

hallo thomas,

wie immer ein danke an dich. dieser der zitierte code-eintrag hat gefehlt. nun klappt alles.javascript:emoticon(':lol:')
.SearchWords = true 'Inhalt muss exakt dem Serchstring
danke

beste grüße


klaus

von Toxitom » Mo, 16.01.2006 12:49

Hey Klaus,

nun, ehrlich gesagt, ich weiss gar nicht so genau, was du eigentlich willst. Du möchtest eine Bereich durchsuceh und eine Zahl ersetzen, wenn sie "alleine" in der Zelle vorkommt?
Also, ich habe deine Code geprüft - das funktioniert doch?

Code: Alles auswählen

Sub SuErMultiple
   Dim oDoc as Object
   Dim oBereich as Object
   Dim oSuche1 as Object
   Dim oSheet as Object
   oDoc = ThisComponent
     oSheet =  oDoc.CurrentController.ActiveSheet
   oBereich = oSheet.getCellRangeByName("a1:a27")
   oSuche1 = oBereich.createReplaceDescriptor()
  
'--1. Suchen/Ersetzen Ausdruck
   with oSuche1
   '   .oBereich.algorithmType = ABSOLUTE
      .setSearchString("1")
      .setReplaceString("5")
      .SearchCaseSensitive = True 'unterscheidet Groß- und Kleinschreibung
      .SearchRegularExpression = True  'sucht nach regulären Ausdrücken
      .SearchWords = true 'Inhalt muss exakt dem Serchstring entsprechen
    end with
    oBereich.replaceAll(oSuche1)   
end sub
Setzt du "SearchWords" auf "False" (vorgabe), so wird Zeichen für Zeichen überprüft und ersetzt. Auf True nur komplette Wörter.

Du brauchst dafpür weder den "algorithmType" noch "SearchRegularExpression" bei so einfachen Ersetzungen.

Oder verstehe ich irgendetwas falsch?

Gruss
Thomas

von kannenklaus » Mo, 16.01.2006 10:13

hallo thomas
Meist: com.sun.star......ABSOLUTE
der c.s.s service läuft nicht richtig. ich versuche ihn gemäß api wie folgt aufzurufen:

Code: Alles auswählen

'--1. Suchen/Ersetzen Ausdruck
	com.sun.star.util.SearchAlgorithms.ABSOLUTE


	with oSuche1
		.setSearchString("1")
		.setReplaceString("5")
		.SearchCaseSensitive = True 'unterscheidet Groß- und Kleinschreibung
		'.SearchRegularExpression = True  'sucht nach regulären Ausdrücken
			end with
		oBereich.replaceAll(oSuche1)
hast du eine idee. freue mich auf eine antwort.

beste grüße

klaus

von Toxitom » Mo, 16.01.2006 08:52

Hey Klaus,

nur mal ein ganz kurzer "Schnellschuss":
  • .oBereich.algorithmType = ABSOLUTE
Das hier ist mit Sicherheit falsch! Schon das "with oBereich" dürfte nicht richtig sein, spätestens aber die Zuweisung von "ABSOLUTE" kann so nicht funktionieren. Wenn du eine vordefinierte Konstante meinst (und das meinst du sicher), dann musst du sie auch komplett benennen - eben so wie es in der API steht. Meist: com.sun.star......ABSOLUTE (Also, die Punkte musst du entsprechend selsbt ausfüllen.

Viele Grüße
Thomas

suchen ersetzen von ganzen werten/wörtern

von kannenklaus » Mo, 16.01.2006 08:25

hallo zusammen,

ich arbeite gerade an einem makro das multiples suchen und ersetzen ermögliche soll. dabei habe ich bisher ein problem nicht knakcen können. der replacedescirptor ersetzt in dem beispiel die zahl 1, wenn sie einmal vorkommt. er soll sie aber nur ersetzen, wenn sie vollständig vorkommt. in der api habe ich dafür

SearchAlgorithms mit ABSOLUTE

der dispatcher zeichnet hierzu folgenden code auf:

Code: Alles auswählen

args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 1
gefunden. bisher konnte ich diese anweisung nicht in das makro integrieren. hat jemand eine idee?

Code: Alles auswählen

Sub SuErMultiple
	
	Dim oDoc as Object
	Dim oBereich as Object
	Dim oSuche1 as Object
	Dim oSuche2 as Object
	Dim oSuche3 as Object
	Dim oSuche4 as Object
	Dim oSuche5 as Object
	Dim oSheet as Object
	oDoc = ThisComponent
  	oSheet =  oDoc.CurrentController.ActiveSheet
	oBereich = oSheet.getCellRangeByName("C1:C13")
	oSuche1 = oBereich.createReplaceDescriptor
	oSuche2 = oBereich.createReplaceDescriptor	
	oSuche3 = oBereich.createReplaceDescriptor
	oSuche4 = oBereich.createReplaceDescriptor
	oSuche5 = oBereich.createReplaceDescriptor

'--1. Suchen/Ersetzen Ausdruck
		.oBereich.algorithmType = ABSOLUTE
		.setSearchString("1")
		.setReplaceString("5")
		.SearchCaseSensitive = True 'unterscheidet Groß- und Kleinschreibung
		'.SearchRegularExpression = True  'sucht nach regulären Ausdrücken
			end with
		oBereich.replaceAll(oSuche1)	
freue mich auf eine antwort

klaus

Nach oben