2011-10-19 2 views
0

Так что я чувствую, что им довольно близко, но у меня есть чувство, я перепутать StreamReader и ReadAllLinesНаполнения выпадающего с первым словом в текстовом файле

........... .................................................. .......................

Опция Строгий На

Imports System.IO

Общественный класс Form4

Dim file As System.IO.StreamWriter 

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    file = My.Computer.FileSystem.OpenTextFileWriter("c:\devices.bat", False) 
    file.WriteLine("@echo off") 
    file.WriteLine("cd " & Form1.TextBox2.Text) 
    file.WriteLine("adb devices > C:\devices.txt") 
    file.Close() 
    Shell("C:\devices.bat", AppWinStyle.Hide, True, 500) 

    Dim output() = System.IO.File.ReadAllLines("C:\deviceinfo2.txt") 
    Dim Devices As String = "" 
    Dim line() As String = {} 

    For X = 1 To output.Count = -1 
     line = output(X).Split(New Char() {("  ")}) 
     Devices = line(0) 
     ComboBox1.Items.Add(Devices) 

    Next 

    output.Close() 
    output.Dispose() 

End Sub 

Конец Класс

......................................... ...............................

То, что я пытаюсь сделать, это начать чтение в строке 2 из device.txt, а затем прочитайте первое слово из каждой строки до тех пор, пока не будет выполнен текстовый файл.

Это кажется достаточно простым, но, как я уже сказал, я думаю, что я смешивания StreamReader с readalllines

Любая помощь приветствуется

ответ

1
Class Test 
    Public Sub Main() 
     Try 
      ' Create an instance of StreamReader to read from a file. 
      ' The using statement also closes the StreamReader. 
      Using sr As New StreamReader("TestFile.txt") 
       Dim line, firstWord As String 
       Dim i as Integer = 0 
       ' Read and display lines from the file until the end of 
       ' the file is reached. 
       Do 
        line = sr.ReadLine() 
        If Not (line Is Nothing) AndAlso i > 0 Then 
         firstWord = line.Split(" ")(i) 
         'do your logic 
        End If 
        i += 1 
       Loop Until line Is Nothing 
      End Using 
     Catch e As Exception 
      ' Let the user know what went wrong. 
     End Try 
    End Sub 
End Class 

Схватил это из MSDN и модифицировали его. Он должен скомпилировать, но я не тестировал его. Это будет проходить по линиям, 1 на 1, пропустить первую строку и захватить первое слово каждой строки после. Надеюсь это поможет.

+0

Я действовал в предположении, что «первое слово» означало бы, что за ним следует пробел и что его первым персонажем был первый символ на линии. Если это не так, раскол должен быть изменен или вам придется разбирать строку, чтобы начать «первое слово» и, тем не менее, оно заканчивается. – Yatrix

+0

начинается со второй строки, но второе занимает вторую строку и не может найти 3-ю и 4-ю строки – Nefariis

+0

Я понял: firstWord = line.Split (CChar ("\t")) (0) FTW – Nefariis

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