我目前正在编写一些代码,它应该读取一个文件并将每一行放入一个数组(可行),然后使用.Substring
命令将数组中的每一行拆分为两个变量(ID和名称)。
我认为我的工作方式可行,但我总是收到错误 - The ID varible is being used before having a value
'Puts every line from file in array
Dim lines As String() = File.ReadAllLines(cleanfile)
Dim ID As String()
Dim NAME As String()
'Supposed to substring every line and split it in ID and NAME
'( ID(1) from lines(1), ID(2) from lines(2), etc. )
'Error starts here for ID and NAME
ID(1 - 40) = lines(1 - 40).Substring(0, 7)
NAME(1 - 40) = lines(1 - 40).Substring(30, 60)
我错过了什么?或者语法中是否有错误?
答案 0 :(得分:0)
您无法按照您尝试的方式索引数组范围。当你写lines(1 - 40)
时,它没有做到#34;第一到第四行" - 它正在做"行减去三十九。"
您的错误出于类似的原因:您似乎正在尝试创建和设置数组值"一到四十,"但实际上这是试图将价值减去三十九。"既然您还没有设置 ID
,那么您就无法做到这一点:没有阵列!
你真正需要的是一个循环,它将依次占用每一行并处理它。幸运的是,使用Linq,循环被抽象掉了,代码可以更简单。 最简单的方法是:
Dim ID as String()
ID = lines.Select(Function (l as String) As String
return l.SubString(0, 7)
End Function).ToArray()