lunedì 31 ottobre 2011

[VB.NET] Estrazione linee da TextBox MultiLine

Descrizione :
Questa mia Function restituisce una List(Of String) delle linee contenute in una TextBox.

+ Articolo :

La Function in questione estrae le linee di testo da un controllo TextBox, indipendentemente dalle proprietà impostate, che abbia WordWrap a True o False, che l'utente abbia fatto o meno uso del "Return" per andare a capo, o che abbia lasciato linee vuote o incomplete.

Inoltre da ogni linea presente nella List() restituita vengono rimossi gli eventuali caratteri ControlChars.NewLine, che in una logica di testo linea-per-linea, avrebbero poco senso.

    Public Function GetTextBoxLines(ByVal TB As TextBox) As List(Of String)

        Dim lines As New List(Of String)
        If TB.TextLength = 0 Then Return lines

        Dim iStartLine As Integer = 0 'Indice Char di inizio linea
        Dim iEndLine As Integer = 0 'Indice Char di fine linea
        Dim iLine As Integer = 0 'Indice di linea ( numero linee incognito )
        Do
            iStartLine = TB.GetFirstCharIndexFromLine(iLine)
            iEndLine = TB.GetFirstCharIndexFromLine(iLine + 1)
            If iEndLine > -1 Then
                lines.Add(TB.Text.Substring(iStartLine, iEndLine - iStartLine))
            Else
                lines.Add(TB.Text.Substring(iStartLine, TB.TextLength - iStartLine))
                Exit Do
            End If
            iLine += 1
        Loop

        'Eliminazione Chars NewLine
        For i As Integer = 0 To lines.Count - 1
            lines(i) = lines(i).Replace(ControlChars.NewLine, "")
        Next

        Return lines

    End Function

+ Fine Articolo.

Un Click su "Mi Piace" è il modo migliore per ringraziare l'autore di questo articolo.



2 commenti:

Anonimo ha detto...

non riesco a capire come utilizzare la routine.
GetTextBoxLines(TextBox1.text) non mi funziona

Anonimo ha detto...

Problema risolto e complimenti per la routine è l'unica che funziona fra tutte quelle che si trovano nel web per non parlare della IA. Grazie mille.

Posta un commento

Favorites Twitter Facebook Delicious Digg Stumbleupon More

 
Design by Free WordPress Themes Modificato da MarcoGG