我一直在试图找出一种搜索数组的方法,只是从包含信息的.txt文件中获取代码行。我希望能够摆脱我不小心将其放入Input文件的空返回空格(空数组元素)。
我有一个数组,可以读取输入文件中的所有行。我添加了一个示例输入,我将其添加到示例输入文件中。
Line1
Line2
Line3
Line4
Line5
我有另一个数组,在占用所有空格之后将是finalArray,并且应该只是一个没有空行返回的数组。我似乎无法将它归为空返回元素。
我刚刚获得相同的输出。我希望它读作;
Line1
Line2
Line3
Line4
Line5
这将使随机化数组的第二部分更容易,如果我能找到一个解决方案来解释空数组元素。我已添加以下代码供参考。
Imports System.IO
Module ListRandomizer
Sub populateArray(ByVal inputArray() As String, ByRef startArray() As String)
Dim pos As Integer = 0
For Each element As String in inputArray
If element <> "" Then
startArray(pos) = element
End If
pos += 1
Next
End Sub
Sub Main()
Dim myWriter As StreamWriter
Dim inputArray() As String
inputArray = File.ReadAllLines("sampleInput.txt")
myWriter = New StreamWriter("sampleOutput.txt")
Dim currLine As Integer = 1
Dim size As Integer = 0
For Each element As String in inputArray
Console.WriteLine("LINE {0}, " & element, currLine)
currLine += 1
If element <> "" Then
size += 1
End If
Next
Console.Writeline(size)
Dim startArray(size) As String
populateArray(inputArray, startArray)
For Each fern As String in startArray
Console.WriteLine("LINE {0}, " & fern, currLine)
currLine += 1
Next
myWriter.Close()
System.Console.ReadLine()
End Sub
End Module
答案 0 :(得分:0)
尝试:
inputArray = File.ReadAllLines("sampleInput.txt").Where(Function(s) Not String.IsNullOrEmpty(s)).ToArray()
答案 1 :(得分:0)
使用ReadlAllText()然后使用StringSplitOptions.RemoveEmptyEntries分割Split():
inputArray = File.ReadAllText("sampleInput.txt").Split(vbCrLf.ToCharArray, StringSplitOptions.RemoveEmptyEntries)