Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB4, VB5, VB6 | 27.08.01 |
Bestimmte Zeile einer TextBox ermitteln Zeigt, wie sich eine bestimmte Zeile einer MutliLine-TextBox anhand einer Zeilennummer ermitteln lässt. | ||
Autor: Thomas Bannert | Bewertung: | Views: 21.258 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Die nachfolgende Funktion gibt den Inhalt einer durch eine Zeilennummer angegebene Zeile einer MultiLine-TextBox zurück.
Ist die Zeile nicht vorhanden, d.h. die TextBox enthält weniger Zeilen, so wird ein Leerstringzurückgegeben.
' Übergabeparameter TextBox ist eine Multiline Textbox Public Function GetLineFromTB(TextBox As TextBox, _ lLine As Long) As String Dim lLineCount As Long Dim lLineEnd As Long Dim sLine As String Dim sTemp As String ' Ist das überhaut eine Multiline Textbox? If TextBox.MultiLine Then lLineCount = 0 ' Zähler für die Zeilen sTemp = TextBox.Text While sTemp <> "" And lLineCount <> lLine lLineCount = lLineCount + 1 lLineEnd = InStr(sTemp, vbCrLf) If lLineEnd > 0 Then ' aktuelle Zeile ermitteln sLine = Left$(sTemp, lLineEnd - 1) sTemp = Mid$(sTemp, lLineEnd + 2) Else ' letzte Zeile sLine = sTemp: sTemp = "" End If Wend If lLineCount <> lLine Then ' Zeile nicht gefunden sLine = "" End If End If GetLineFromTB = sLine End Function
Beispiel:
Text1.Text = "Dies ist eine mehrzeile Nachricht" & _ vbCrLf & vbCrLf & _ "Zeile 3" & vbCrLf & "Zeile 4" MsgBox GetLineFromTB(Text1, 3) ' Zeile 3
Unter Visual Basic 6...
lässt sich das ganze etwas einfacher realisieren. Hier sollte man die Split-Funktion verwenden:
Public Function GetLineFromTB(TextBox As TextBox, _ lLine As Long) As String Dim sLines() As String sLines = Split(TextBox.Text, vbNewLine) If lLine - 1 <= UBound(sLines) Then GetLineFromTB = sLines(lLine - 1) End If End Function