【发布时间】:2015-11-10 16:10:13
【问题描述】:
我有一个轻微的编码问题,该数组丢失了 For Each 循环之外的所有值。我尝试了许多解决方案。我可以在循环内正确地看到所有数据(尝试在循环内循环整个数组,包含所有值),但是一旦它退出,数组就是空的。
尝试将 sub 外部的临时数组也声明为 public。任何想法,将不胜感激。在我的绳索尽头:-(
PS: HSarray 在模块中被声明为友元。
公开课高分表格
Private TempArray(0) As Integer
Private Sub ScoreGet()
Dim Counter As Integer = 0
'Oppretter textfieldParser, Leser alle linjer fra tekstfil inn i array
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(ScoreFile)
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
'Øker størrelsen på Array per linje / Kjøring av løkke
If Counter > 0 Then
'Skriver verdi til siste index i array
Counter = Counter + 1
ReDim Preserve TempArray(Counter)
TempArray(Counter) = currentField
'Hvis løkke kjører for første gang, skriv verdi til index 0, fortsett
ElseIf Counter < 1
TempArray(Counter) = currentField
Counter = Counter + 1
End If
Next
'TempArray stops containing data here----WHY????
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("OBS! Noe gikk galt ved uthenting av high score")
End Try
End While
End Using
'Sorterer array etter data-størrelse - Noe kødd her!!
TempArray.Sort(TempArray)
TempArray.Reverse(TempArray)
'Skriver de 5 første (og største) verdiene i temp-array til liste shared array i modul
Array.Copy(TempArray, HSarray, 5)
'Sletter innhold
'Erase TempArray
'ReDim TempArray(0)
End Sub
【问题讨论】:
-
你真的不需要在.NET中使用
ReDim之类的东西——看看List(Of T)之类的东西 -
我会调查的。谢谢!