gpt4 book ai didi

string - Visual Basic 将文件加载到由制表符分隔的 string(,)

转载 作者:行者123 更新时间:2023-12-04 23:36:58 24 4
gpt4 key购买 nike

我有许多文件,大小不一。但是我想对所有这些都完成同样的事情,将它们加载到 string(,) 中。

在过去的几个小时里,我搜索了许多与此类似的代码变体,但似乎有一些小的变化,但即使如此,我也最多只能加载一行:

    Dim strimport As String() = {}
Dim strimportsplit As String(,) = {}
Dim i As Integer = 0

strimport = File.ReadAllLines("C:\test.txt")

For i = 0 To strimport.Length - 1
strimportsplit = strimport(i).Split(New Char() {vbTab}) 'This line doesn't work
Next

这是我的文件的一个示例(只是它们明显更大):
aaa fff 0
bbb ggg 1
ccc hhh 2
ddd iii 3
eee jjj 4

这基本上是我希望上述内容从外部文本文件加载到我的数组中的方式:
        Dim strexample As String(,) = {{"aaa", "fff", "0"},
{"bbb", "ggg", "1"},
{"ccc", "hhh", "2"},
{"ddd", "iii", "3"},
{"eee", "jjj", "4"}}

我什至尝试将所有表作为字符串(,)手动添加到 VB。那行得通……但是像这样手动放入文件会使文件大小增加到 ~30mb 并给我带来巨大的性能损失。不是很理想。

我的问题是,如何从文本文件加载到类似于我上面最后一个示例的 string(,) 中?

非常感谢您提前。

最佳答案

如果您切换到 Jagged Array,这会更容易。而不是二维的。二维数组的问题(此处)是您一次只能访问和修改一个元素,而使用锯齿状数组您可以访问整行。

锯齿状数组本质上是一个数组数组,可以像这样声明:

Dim strimportsplit As String()()

您必须将其行大小设置为 strimport.Length以确保它可以容纳相同数量的行:
Dim strimport As String()
Dim strimportsplit As String()()

'Dim i As Integer = 0 -- No need for this, it's declared by the loop.

strimport = File.ReadAllLines("C:\test.txt")
strimportsplit = New String(strimport.Length - 1)() {}

NOTE: The reason I use strimport.Length - 1 above is because in VB.NET you actually don't specify the length when declaring a new array, but rather the index of the last item. And since indexes start at 0 the last item will have index Length - 1.



然后在循环内您只需使用 i引用项目的当前数组(行/行):
strimportsplit(i) = strimport(i).Split(New Char() {vbTab})

可以像这样访问一个项目:
'strimportsplit(row)(column)

MessageBox.Show(strimportsplit(0)(1)) 'Displays "fff".
MessageBox.Show(strimportsplit(3)(2)) 'Displays "3".

如果您愿意,还可以访问整行:
Dim ThirdRow As String() = strimportsplit(2)

MessageBox.Show(ThirdRow(0)) 'Displays "ccc".

关于string - Visual Basic 将文件加载到由制表符分隔的 string(,),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51135428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com