【发布时间】:2016-01-03 15:13:57
【问题描述】:
我认为这很简单,但由于某种原因它没有出现在我身上......
这是我目前的代码
Dim fileReader As New StreamReader(FOfileToProcess)
Dim sLine As String = ""
Dim fileText As New ArrayList()
Do Until fileReader.EndOfStream()
sLine = fileReader.ReadLine()
If Not sLine Is Nothing Then fileText.Add(sLine)
Loop
fileReader.Close()
fileText.Sort(20, 2, Nothing) 'My intention is to sort by the values at zero-based 20 for 2 characters
fileText.Sort(63, 9, Nothing) '... and likewise at zero-based 63 for 9 characters
Dim saText() As String = DirectCast(fileText.ToArray(GetType(String)), String())
File.WriteAllLines(FOfileToProcess + "_sorted", saText)
它可以工作,但是写出的“_sorted”文件没有正确排序。只是更正我的排序字段的问题吗?原始排序是 2 字段排序,主要是第 63 列,次要是第 20 列,但由于只有一组参数,我想先选择次要并以主要结尾。
建议?
TIA!
【问题讨论】:
-
为什么你仍然使用过时的
ArrayList而不是List(Of String)? -
我不需要使用arraylist;我可以使用任何东西。实际上,我已经有一段时间没有接触过 vb 程序了,而我正在努力更新的原始程序可能是在 VB5 中开始的。我没有时间将整个东西转换为 C#,所以我现在只需要留在 VB...
-
酷!我将 ArrayList 更改为 List(of String) 和适当的排序范围,瞧!谢谢@TimSchmelter!非常感谢!
-
那我误解了你的要求。但我很高兴它现在可以工作了。
-
哎呀...我的错误:我在视觉上比较文件并将它们混淆了。排序工作不正常......我在下面尝试了你的答案,但没有 File.ReadLines 方法。有一个 ReadAllLines 方法,但它说它不可查询。
标签: vb.net sorting visual-studio-2013 arraylist