vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes selektieren und Font ändern 
Autor: Dideldum
Datum: 16.03.23 20:07

Hi Kuno,

jetzt habe ich Dein o.g. Schriftgrössen-Script benutzt, um die Schriftschnitte einer Selektion ohne erzwungene Fontänderung der gesamten Selektion setzen zu können.

Aber mit Regex habe ich bis heute noch nie Kontakt gehabt.

Mein Script:

    Private Sub ändereSelectedSchriftschnitt(sSchnitt As Integer)
 
        Dim rtb = tsc_TextEditor_RTFBox
 
        ' Selektion merken
        Dim rtbs = rtb.SelectionStart
        Dim rtbsl = rtb.SelectionLength
 
        If rtb.SelectionLength > 0 Then
 
            Dim rt = rtb.SelectedRtf
 
            ' Bold Start und Ende entfernen
            If (sSchnitt And 1) = 1 Or (sSchnitt And 1) = 0 Then
                For Each m As Match In Regex.Matches(rt, "\\b0", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\b\s", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\b", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length) 
                Next
            End If
 
            ' Italic Start und Ende entfernen
            If (sSchnitt And 2) = 2 Or (sSchnitt And 1) = 0 Then
                For Each m As Match In Regex.Matches(rt, "\\i0", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\i\s", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\i", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length) 
                Next
            End If
 
            ' Underline Start und Ende entfernen
            If (sSchnitt And 4) = 4 Or (sSchnitt And 1) = 0 Then
                For Each m As Match In Regex.Matches(rt, "\\ulnone", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\ul\s", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\ul", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
            End If
 
            ' Strikeout Start und Ende entfernen
            If (sSchnitt And 8) = 8 Or (sSchnitt And 1) = 0 Then
                For Each m As Match In Regex.Matches(rt, "\\strike0", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\strike\s", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length)
                Next
                For Each m As Match In Regex.Matches(rt, "\\strike", _
                  RegexOptions.RightToLeft)
                    rt = rt.Remove(m.Index, m.Length) 
                Next
            End If
 
            ' Schriftschnitt am Anfang und Ende der Selektion setzen
            Dim n As Match
            n = Regex.Match(rt, "\\pard")
 
            ' Bold
            If (sSchnitt And 1) = 1 Then
                rt = rt.Insert(n.Index, $"\b") & rt & "\b0"
            End If
 
            ' Italic
            If (sSchnitt And 2) = 2 Then
                rt = rt.Insert(n.Index, $"\i") & rt & "\i0"
            End If
 
            ' Underline
            If (sSchnitt And 4) = 4 Then
                rt = rt.Insert(n.Index, $"\ul") & rt & "\ulnone"
            End If
 
            ' StrikeOut
            If (sSchnitt And 8) = 8 Then
                rt = rt.Insert(n.Index, $"\strike") & rt & "\strike0"
            End If
 
            ' In RTF übernehmen
            rtb.SelectedRtf = rt
 
            ' Selektion erneuern
            rtb.SelectionStart = rtbs
            rtb.SelectionLength = rtbsl
        End If
    End Sub
Ich konnte aber nicht herausfinden, wie ich die jeweils drei Suchbedingungen in den vier Schleifen in je eine Schleife mit der RegEx.matches-Abfrage packen kann.
Kannst Du mir hier vielleicht einen Tip geben?

Beste Grüsse
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
RTFBox Zeichen mit unterschiedlichen Fonts und Sizes selekti...514Dideldum11.02.23 19:10
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...264BT-Soft13.02.23 13:04
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...257Dideldum13.02.23 19:29
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...224Kuno6013.02.23 21:06
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...219Dideldum13.02.23 21:15
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...224Kuno6013.02.23 21:21
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...222Kuno6013.02.23 21:30
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...249Dideldum13.02.23 22:09
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...219Dideldum14.02.23 15:00
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...185Dideldum20.02.23 21:22
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...244Kuno6020.02.23 22:37
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...212Dideldum20.02.23 22:58
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...199Dideldum21.02.23 04:03
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...197Dideldum21.02.23 19:09
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...125Dideldum16.03.23 20:07
Re: RTFBox Zeichen mit unterschiedlichen Fonts und Sizes sel...134Dideldum16.03.23 21:08

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel