2013-11-15 5 views
0

Моя проблема в том, что я не понимаю, как выводить в lblBoxes соответствующие данные из txt.file У меня есть 8 lbloutput в моей форме, и я пытаюсь подрезать все, включая:. Это не работает, и я понимаю, что он находит индекс: в первой строке, но подстроку, используя это во второй строке. Я также думал создать Array, чтобы сначала найти все индексы, а затем использовать их с подстрокой, но это не позволяет мне перечислить так, как я это делаю. Пример массива:читать строку после определенного разделителя

'EXAMPLE OF BAD ARRAY 
    Dim intIndexDelimiter() As Integer 

    For Each i As Integer In employeeDataFileInput.ReadToEnd.IndexOf(":") 
     intIndexDelimiter = i 
    Next 

Код:

Public Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Dim strFileName As String      'hold name fo the file 
     Dim employeeDataFileInput As StreamReader  'object variable 

     'get name for file 
     strFileName = InputBox("Enter Name Of the File", "Open File") 

     If File.Exists(strFileName) Then 
     'open file 
     employeeDataFileInput = File.OpenText(strFileName) 
     MessageBox.Show(strFileName & "File open") 
    Else 
     MessageBox.Show(strFileName & "This file does not exist.") 
    End If 

    'not working 
    lblRecordNum.Text = CStr(employeeDataFileInput.ReadLine.Substring(employeeDataFileInput.ReadLine.IndexOf(":"))) 
End Sub 

Мои данные TXT файл

Record Number: 1 
First Name: Tim 
Middle Name: K 
Last Name: Black 
Employee Number: 111 
Phone Number: 1112223344 
Extention: 1 
Email: [email protected] 
Department: Accounting 

Record Number: 2 
First Name: Jim 
Middle Name: K 
Last Name: Fisher 
Employee Number: 222 
Phone Number: 2223334455 
Extention: 2 
Email: [email protected] 
Department: Administration 

Record Number: 3 
First Name: James 
Middle Name: T 
Last Name: Holt 
Employee Number: 333 
Phone Number: 3334445566 
Extention: 3 
Email: [email protected] 
Department: Sales 

ответ

0

Подсказка: вот пример чтения файла и отображения данных, считанных с ввода, как у вас. Ключевым моментом является использование метода split для разделения входного сигнала на «:».

Imports System.Collections.Generic 
Imports System.Linq 
Imports System.Text 
Imports System.IO 

Namespace Console_Work 
    Class Program 

     Private Shared Sub Main(args As String()) 
      Dim FileName As String = "C:\temp\MyIOFile.txt" 
      If Not File.Exists(FileName) Then 
       Console.WriteLine("*** Error {0} does not exist. Please hit any keu", FileName) 
       Console.Read() 
       Return 
      End If 
      Dim inputRecord As [String] 
      Using sr As StreamReader = File.OpenText(FileName) 

       While (InlineAssignHelper(inputRecord, sr.ReadLine())) IsNot Nothing 
        'Process read record 
        ProcessInputRecord(inputRecord) 
       End While 
       Console.WriteLine("The end of the stream has been reached.") 
      End Using 
      Console.WriteLine("End - Please hit any key") 
      Console.Read() 
     End Sub 

     '------------------------------------------------------------------------ 
     Public Shared Sub ProcessInputRecord(parm_record As String) 

      Dim fldValue As String() = New String(0) {} 
      Try 
       fldValue = parm_record.Split(New [Char]() {":"C}) 
       If fldValue.GetUpperBound(0) = 1 Then 
        'the header text will be in fldvalue[0] and the data will be in fldValue[1] 
        Console.WriteLine("Header=" & fldValue(0) & vbTab & vbTab & "Data=" & fldValue(1)) 
         'logic comes here when there is no : 
       Else 
           '//logic comes here when there is no : in the input line 
       End If 
      Catch ex As Exception 

       Console.WriteLine("***Error parsing:" & ex.Message & Environment.NewLine & parm_record) 
      End Try 

     End Sub 
     Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T 
      target = value 
      Return value 
     End Function 



    End Class 
End Namespace 
0

Вы можете использовать метод расщепления строки для spliting строку в пар ключ/значение.

Я имею в виду: вы прочитали полную строку и разделили ее.

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