2013-11-15 8 views
0

Я знаю, что это должно быть легко .. НО, каждый раз, когда я запускаю этот код, он сообщает мне первый символ первой строки THEN, который возвращает «» для всех следующих символов .....Получите первый символ каждой строки в текстовом поле vb.net

Dim firstChar As Char 

' Split on New Line 
For Each strLine As String In TextBox1.Text.Split(vbNewLine) 

    firstChar = strLine.First() 

    If firstChar = "[" Then 
     MessageBox.Show("I found it!") 
    End If 
Next 
+0

мы можем видеть ваши входные данные? – MichaelEvanchik

+0

Причина, по которой они "", заключается в том, что вам нужно проверить http://msdn.microsoft.com/en-us/library/system.stringsplitoptions(v=vs.110).aspx, но также использовать другой метод, например, другие ответы были отмечены. – JDwyer

ответ

3

Используйте значение TextBoxLines вместо расщепления по новой строке, например:

Dim lines() As String 
lines = TextBox1.Lines 

Теперь вы можете цикл через массив строки и получить первый символ каждой строки, например:

For Each line As String In lines 
    ' Protect against strings that do not have a first letter to check 
    If line.Length >= 1 Then 
     Dim firstLetter As Char 
     firstLetter = line.Substring(0, 1) 
    End If 
Next 

Затем вы можете поставить логику для проверки первой буквы будучи определенное значение, например:

If firstLetter = "[" Then 
    MessageBox.Show("I found it!") 
End If 

Примечание: Выше я с изложением шагов в изоляции, но, очевидно, вы можете объединить некоторые из этих вещей вместе для более краткого решения, например:

For Each line As String In TextBox1.Lines 
    ' Protect against strings that do not have a first letter to check 
    If line.Length >= 1 Then 
     Dim firstLetter As Char = line.Substring(0, 1) 

     If firstLetter = "[" Then 
      MessageBox.Show("I found it!") 
     End If 
    End If 
Next 
+0

Я получаю исключение из-за пределов на моем персонаже, когда оно доходит до конца. –

+0

@PeterBlack - ответьте на обновление, чтобы защитить от проверки первой буквы в пустой строке. –

0
firstChar = strLine.Substring(0,1) 

больше того, что им используется для кодирования, никогда не видел первых раньше, не говоря его недействительным, но может быть проблема? также vbNewLine, хотя это правильно, я бы разделил на char (10) или char (13), поскольку иногда это не оба. Кроме того, что внутри strLine, в отладчике?

Смежные вопросы