VB从文本文档

时间:2016-01-16 16:09:25

标签: vb.net

我目前正在尝试加载一系列格式如下的变量:

5,
6,
3,
3,

等,我正在尝试将它们输出到这样的变量:

Strength = variablesList(1)
Agility = variablesList(2)

但到目前为止,我还没有找到一个似乎适用于我正在努力的解决方案。

我目前正在处理:

Dim destination As String = Environment.GetFolderPath("C:\Roll20Output\Class" + outputClass + "2.txt")
        Dim FileReader1 As New StreamReader(destination)
        Dim Contents1 As String
        Dim index As Integer = 0
        While FileReader1.Peek <> -1
            Contents1 = FileReader1.ReadLine
            Dim array As New ArrayList
            array.AddRange(Contents1.Split(","))
            variablesList.Add(array)
        End While

        Strength = variablesList(1)
        Agility = variablesList(2)

但到目前为止,我似乎无法得到任何结果。

有人能帮忙吗?

由于

1 个答案:

答案 0 :(得分:1)

您在代码中使用了大量过时的东西(使用StreamReader,ArrayList而不是List<T>读取文件等)。我会建议以下(未经测试):

' Returns an array with one string per line
Dim lines = File.ReadAllLines("C:\...\SomeFile.txt")

' Remove trailing `,` - LINQ magic
lines = (From s In lines Select s.TrimEnd(","c)).ToArray()

Dim strength = CInt(lines(0))
Dim agility = CInt(lines(1))
...

如果你摆脱了无用的尾随逗号,你可以跳过第二步。如果您只使用 逗号而不是新行,则第一步将变为:

Dim lines = File.ReadAllText("C:\...\SomeFile.txt").Split(","c)