0
我遇到了一个问题,我有一个正在处理的程序,我必须能够依次读取多个.txt文件来更新名为words()
的字符串数组。主要问题是我上传的第一个文件进入files()
字符串数组,当我运行拖放事件数组已满时,不会让我上传第二个。在成功上传后,如何重置files()
阵列。使用StreamReader读取.txt文件
示例代码:
Dim words(7) As String
Dim i As Integer = 0
Public Sub frmMain_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop
Dim word As String = ""
Try
Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
For Each path In files
MsgBox(path)
Dim sr As New StreamReader(path)
Do Until sr.Peek = -1
word = sr.ReadLine()
words(i) = word
frmDefaultkWh.lbDefaultkWh.Items.Add(cbAppliances.Items(i) + " = " + words(i))
i = i + 1
Loop
Next
GetPower()
Catch ex As Exception
'MessageBox.Show(ex.ToString())
End Try
End Sub
Private Sub frmMain_DragEnter(sender As Object, e As DragEventArgs) Handles MyBase.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
请澄清你的意思是_“full”_以及_ ** exact ** _问题是什么。该数组不能为“全部”,因为每次引发MyBase.DragDrop时都会重新声明它。是不可能的。 –
当我拖动第二个文件来更新'words()'字符串数组时,我得到一个System.IndexOutOfRangeException,那么数组不会更新。如果它不是'file()'数组。那么在下一个文件上传后,如何从'words()'数组中删除这些值呢? – Ingelbert
看起来'words'不应该是一个数组,而是一个[**'List(Of T)'**](https://msdn.microsoft.com/en-us/library/6sh2ey19(v = vs.110).aspx),因为你需要一个动态大小的集合(你永远不会知道你会找到多少单词)。调用'yourList.Add(- )'将新项目添加到列表中,'yourList.Clear()'删除所有项目。 –