Rubrik: Variablen/Strings · String-Operationen | VB-Versionen: VB4, VB5, VB6 | 03.11.01 |
Wortanfang immer in Grossbuchstaben Eine kleine Funktion, die automatisch den ersten Buchstaben eines jeden Wortes innerhalb eines Textes in Grossbuchstaben umwandelt. | ||
Autor: Dieter Otter | Bewertung: | Views: 15.234 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Die nachfolgende Funktion wandelt automatisch den ersten Buchstaben eines jeden Wortes innerhalb eines Textes in Grossbuchstaben um. Hierfür gibt es mehrere Anwendungsbereiche:
- Eingabe "Name Vorname": Aus otter dieter wird Otter Dieter
- CD-/Liederverwaltung: Aus i'm on fire wird I'm On Fire
- usw.
Und hier die besagte Funktion
' Jedes Wort innerhalb eines Textes immer mit ' Grossbuchstaben beginnen Private Function WortanfangGross(ByVal sText As String) As String ' Defintion der Trennzeichen Const sCheck = " .:,;-()" Dim sTemp As String Dim lPos As Long Dim iAscii As Integer ' alle unnötigen Leerzeichen (links und rechts) entfernen sText = Trim$(sText) If sText <> "" Then sTemp = "" ' nach ersten Buchstaben (A-Z, a-z) suchen Do iAscii = Asc(left$(sText, 1)) Select Case iAscii ' A-Z und a-z Case 65 To 90, 97 To 122 Exit Do Case Else sTemp = sTemp + left$(sText, 1) sText = Mid$(sText, 2) End Select Loop Until sText = "" If sText <> "" Then sTemp = sTemp + UCase$(left$(sText, 1)) sText = Mid$(sText, 2) lPos = 0 While lPos < Len(sText) lPos = lPos + 1 ' Wortanfang? If InStr(sCheck, Mid$(sText, lPos, 1)) > 0 And _ lPos < Len(sText) Then ' wenn Kleinbuchstabe -> Grossbuchstabe iAscii = Asc(Mid$(sText, lPos + 1, 1)) If iAscii >= 97 And iAscii <= 122 Then Mid$(sText, lPos + 1, 1) = UCase$(Chr$(iAscii)) End If End If Wend sTemp = sTemp + sText End If End If WortanfangGross = sTemp End Function