这是一个子程序,它读取包含员工详细信息的文本文件。 我已经存储了从文件到临时数组的每一行,我想让它每5行/ 5个数组项,它将它们存储到一个数组中。我该怎么做才能存储大小的数组,例如。 0-4(5项)成为字符串类型数组?
示例:
到一个存储所有这5个列表的数组中,所以可能像:
对于x = 0到4步骤1
store_array(1)= temparray(x)
下一个x
但在这之后,我使用console.writeline来显示store_array(1),它只显示0。
Dim arremp() As String = IO.File.ReadAllLines(filename) 'adds each line as string array
Dim temp As String = " "
Dim flen As Integer = arremp.Length - 1 'get string length, index based, starting at 0 not 1.
Dim temparray(flen) As String 'string array
Dim i As Integer = 0
' Setting up an object variable for the streamreader (which is the path folder and its name).
Dim objreader As New System.IO.StreamReader(filename, True) ' Has been set to true because the file exists and this will append(ADD) for the next str.
' if a file doesn't exists, it should be false which will ensure that a text file is created first.
For Each myline In arremp
temp = myline & vbCrLf
temparray(i) = temp
i = i + 1
Next myline
答案 0 :(得分:0)
您最好创建一个Employee类 - 例如: -
Private Class Employee
Public Property Name As String
Public Property ID As String
Public Property Type As String
Public Property JobTitle As String
Public Property AdditionalPayments As Integer
End Class
然后,不是使用数组,而是创建像这样的员工列表
Dim employees As New List(Of Employee)
要读取数据,您仍然可以使用io.file编写数据,但说实话我建议您查看流程读取器和关键字Using
Private Sub EmployeeData()
'this is a more readable way of creating a nonexistant file or
'reading from an existing one
If Not IO.File.Exists(filename) Then
'if the file exists create it
IO.File.Create(filename)
tempfile.Close()
Else
'otherwise read the data from the existing file
Dim arremp() As String = IO.File.ReadAllLines(filename) 'adds each line as string array
'you dont need i to track the number of items in the list of employees, just use employees.Count
'Loop through the array 5 items at a time, create a tempEmployee
'and add it to the list of employees
For x As Integer = 0 To arremp.Count - 1 Step 5
Dim tempEmployee As New Employee With {.Name = arremp(x),
.ID = arremp(x + 1),
.Type = arremp(x + 2),
.JobTitle = arremp(x + 3),
.AdditionalPayments = arremp(x + 4)
}
employees.Add(tempEmployee)
Next
End If
End Sub
现在不是指使用数组的员工,而是在6个月内你不记得哪个元素意味着什么,你可以使用更明显的属性名称。
TextBox1.Text = employees(i).Name
TextBox1.Text = employees(i).JobTitle