Kleinbuchstaben in Großbuchstaben umwandeln

Das Textverarbeitungsprogramm

Moderator: Moderatoren

Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

Moin, moin,
ich suche einen Weg, per Shortcut ein versehentlich groß geschriebenes Wort in ein kleingeschriebenes umzuwandeln bzw. umgekehrt. Gibt es da eine fertige Lösung oder muss man ein Makro austüfteln?
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

Der macht ja gleich alles in Großbuchstaben...
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

Nee, das ist auch nicht, was ich suche...
In Word gibt es den Befehl "GroßKleinschreibungändern". Der bewirkt, dass ein markiertes Wort nacheinander in Großbuchstaben, Kleinbuchstaben und mit führendem Großbuchstaben geschrieben wird. Ich erinnere mich dunkel, dass ich zu meinen StarWriter-Zeiten eine ähnliche Funktion hatte. Ich weiß aber nicht mehr, ob das ein Makro war oder ob es sich um eine eingebaute Funktion gehandelt hat. Ist jedenfalls praktisch.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Charly »

Hallo!

Ich habe mal in diesem Forum ein Makro gefunden, dass die Lösung von Word imitiert. Das kann dann an einen Tastaturbefehl gebunden werden. Ich habe dafür Analog zu Word die Taste "F3" genommen.

Code: Alles auswählen

Sub GroKlei
Dim sText As String
sText=""
'aktuelles Dokument
xDoc=ThisComponent
xController=xDoc.CurrentController
'Cursor im Doc
xVCrsr=xController.getViewCursor
CurPos=xVCrsr.getPosition()
'gesamtes Dokument
oText=xDoc.Text
xSelection = xDoc.CurrentController.getSelection
'Range des aktuellen Selection
xRange=xSelection(0)
xCursor=xRange.getText.createTExtCursorByRange(xRange)
'Wort markieren
sText=xCursor.GetString()

If Len(sText) <= 0 Then
xCursor.gotoStartOfWord(False)
xCursor.GotoEndOfWord(True)

'String aus Wort ermitteln
sText=xCursor.GetString()
End If

'klein > groß
If sText=LCase(sText) Then
sText=UCase(Left$(sText,1)) + Right$(sText, Len(sText)-1)
'Einfügen
oText.InsertString(xCursor,sText,True)
Exit Sub
End If

'groß > klein
If sText=UCase(sText) Then 
oText.InsertString(xCursor,strConvert(stext,0),True)
Exit Sub
End If

'gemischt
If Left$(sText,1) = UCase(Left$(sText,1)) Then
oText.InsertString(xCursor,strConvert(stext,1),True)
Exit Sub
End If
oText.InsertString(xCursor,strConvert(stext,1),True)
End Sub

Function strConvert (cText As String, Flag As Integer) As String
iRun = 1
while iRun < Len(cText)+1
If Flag=1 Then
Mid( cText ,iRun, 1, UCase(Mid(cText,iRun,1))
Else
Mid( cText ,iRun, 1, LCase(Mid(cText,iRun,1))
End If
iRun = iRun + 1
Wend
strConvert=cText
End Function
Gruß
Charly
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

dANKE schön!
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

Mist, ich habe gerade auf 3.2.1 upgedated - und nun bricht das Makro mit einer Fehlermeldung ab (vorher lief es tadellos) "Prozedur nicht definiet.
-

edit: ich stelle gerade fest, dass das Umwandeln von klein in Groß funktioniert - aber nicht umgekehrt.

nochmal edit: Ich habe den Fehler gefunden. Ich weiß nicht, wie es passiert ist, aber irgendwie war die Definition der Function verschwunden. Kein Wunder dass das nicht mehr lief...
Zuletzt geändert von Noebian am Sa, 12.06.2010 20:29, insgesamt 1-mal geändert.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von turtle47 »

Hallo Noebian,

folgender Code sollte das tun was Du möchtest:

Code: Alles auswählen

Sub GrossKleinSchreibung
   myDoc=thisComponent
   myViewCursor=myDoc.GetCurrentController. ViewCursor
   oText = myDoc.getText   
   oCursor = oText.createTextCursor() 
   oCursor.gotoRange(myViewCursor,false)
   oCursor.gotoStartOfWord(False)
   myViewCursor.gotoRange(oCursor,false)
   myViewCursor.goRight(1,true)
   buchstabe = myviewCursor.string
   if myviewCursor.string = lcase(buchstabe) then   
   myviewCursor.string=ucase(buchstabe)
   else
   myviewCursor.string=lcase(buchstabe)
   end if
   myViewCursor.goright(1,false)
End Sub
Du brauchst das Wort auch nicht markieren sondern nur den Cursor reinsetzen.

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

Naja, nicht ganz. Zwei Großbuchstaben hintereinander kann ich damit nicht ausmerzen.
Trotzdem danke schön!
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von turtle47 »

Hallo Noebian,
Noebian hat geschrieben:Zwei Großbuchstaben hintereinander kann ich damit nicht ausmerzen.
Dafür gibt es doch die Autokorrektur unter Menue > Extras > Autokorrektur > Reiter Optionen
"Zwei Grossbuchstaben am Wortanfang korrigieren"

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von Noebian »

Da hast du auch wieder recht :-)
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Kleinbuchstaben in Großbuchstaben umwandeln

Beitrag von turtle47 »

Hi,

dieser Code macht folgendes bei einem markierten Wort mit zwei oder mehr aufeinander folgenden Grossbuchstaben:

Ausgangswort > GRossbuchstaben

1x Klick = Grossbuchstaben

Nochmal Klick = grossbuchstaben

Nochmal Klick = Grossbuchstaben

....... and so on

Code: Alles auswählen

Sub GrossKleinSchreibung
dim LenString as integer
	myDoc=thisComponent
	myViewCursor=myDoc.GetCurrentController.ViewCursor
	LenString = Len(myviewCursor.string)

	oText = myDoc.getText   
	oCursor = oText.createTextCursor()	
	oCursor.gotoRange(myViewCursor,false) 
	oCursor.gotoStartOfWord(False)
	myViewCursor.gotoRange(oCursor,false)   
	myViewCursor.goRight(1,false)
	myViewCursor.goRight(1,true)
	buchstabe = myviewCursor.string

	if myviewCursor.string = ucase(buchstabe) then   
	oCursor.gotoStartOfWord(False)
	myViewCursor.gotoRange(oCursor,false)   
	myViewCursor.goRight(1,false)
	myViewCursor.goRight(LenString -1,true)
	buchstabe = myviewCursor.string   
	myviewCursor.string=lcase(buchstabe)
	myViewCursor.goleft(1,false)
	myViewCursor.goright(LenString,true)
	exit Sub
	end if
   
	oCursor.gotoRange(myViewCursor,false)
	oCursor.gotoStartOfWord(False)   
	myViewCursor.gotoRange(oCursor,false)
	myViewCursor.goRight(1,true)
	buchstabe = myviewCursor.string
	
	if myviewCursor.string = ucase(buchstabe) then
	myviewCursor.string=lcase(buchstabe)
	else
	myviewCursor.string=ucase(buchstabe)
	end if   
    
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten