2013-12-13 31 views
0

我一直有问题试图找出一种方法来搜索数组,只需从包含信息的.txt文件中获取代码行。我希望能够摆脱我将意外放入输入文件的空返回空格(空数组元素)。删除源自.txt文件输入的空数组元素

我有一个数组,它读取输入文件中的所有行。我添加了一个样本输入,我将其添加到样本输入文件中。

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

尝试:

inputArray = File.ReadAllLines("sampleInput.txt").Where(Function(s) Not String.IsNullOrEmpty(s)).ToArray() 
0

使用ReadlAllText(),然后拆分()与StringSplitOptions.RemoveEmptyEntries:

inputArray = File.ReadAllText("sampleInput.txt").Split(vbCrLf.ToCharArray, StringSplitOptions.RemoveEmptyEntries)