Makro für Character-Suche

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

Moderator: Moderatoren

OlliGOE
Beiträge: 2
Registriert: Mi, 25.02.2009 13:32

Makro für Character-Suche

Beitrag von OlliGOE »

Hallo zusammen !
Ich habe grade folgendes Problem:
Ich habe mit Basic ein Makro geschrieben, mit dem ich ein Textdokument ganz normal öffnen kann. Das Makro zählt nach dem öffnen alle Wörter & Buchstaben die das Dokument enthält. Jetzt kommt die Stelle an der ich verzweifle... ich möchte den Text gezielt nach bestimmten Buchstaben durchsuchen können, also z.b. nach a, b, c usw... Ich möchte also nicht nur angezeigt bekommen, wieviele Buchtstaben der Text insgesammt enthält, sondern wievele a's oder sonstwas darin enthalten ist.
Könnte mir jemand sagen wie ich das bewerkstelligen kann ??
Dazu muß ich sagen, das ich mich noch nicht so lange mit OpenOffice und Makros beschäftige... warscheinliche ist die Lösung des Problems recht simpel ;)

MfG
OlliGOE
Gino
*
Beiträge: 12
Registriert: Sa, 04.10.2008 12:43

Re: Makro für Character-Suche

Beitrag von Gino »

Hallo Olli,

Code: Alles auswählen

Sub Search_String
Dim oReplaceDesc As Object
Dim Doc As Object
Dim oFoundCursor As Object
	Doc = thisComponent
	oReplaceDesc = Doc.createReplaceDescriptor
	oReplaceDesc.SearchString = "a"
	Found = Doc.findFirst (oReplaceDesc)
	While not IsNull(Found)
	oFoundCursor = Found.Text.createTextCursorByRange(Found)
	Found = Doc.findNext( Found.End, oReplaceDesc)
	i = i + 1
	wend
	msgbox i
End Sub
sollte gehen.

Gino
OlliGOE
Beiträge: 2
Registriert: Mi, 25.02.2009 13:32

Re: Makro für Character-Suche

Beitrag von OlliGOE »

Jap, funktioniert.
Besten Dank !
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro für Character-Suche

Beitrag von komma4 »

... die Treffer müssen nicht selbst gezählt werden:

Code: Alles auswählen

    Sub Search_String
    Dim oReplaceDesc As Object
    Dim Doc As Object
    Dim oFoundCursor As Object
       Doc = thisComponent
       oReplaceDesc = Doc.createReplaceDescriptor
       oReplaceDesc.SearchString = "a"
       i = Doc.replaceAll( oReplaceDesc )
       msgbox i
    End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten