webForumDet fria alternativet

problem i VB.Net

.NETur .NET

22 svar · 488 visningar · startad av sorensson · sida 2 av 2

Frågan, av sorensson

Hej! Jag har ett problem. Jag har läst in text i en array från en fil. Texten är följande: Daniel, 25,5 Peter, 35,6 jonas, 45,5 nu vill jag skriva ut de tal som är större än 30 (samt namnet) i en textbox när jag klickar på en knapp. Hur går jag tillväga då? hur skall jag göra för att hitta talen som är större än 30 i arrayen? hur skall jag dela upp arrayen då? Väldigt tacksam för svar // Danie

Läs frågan i sin helhet →
Medlem sedan sep. 20011 914 inlägg
#21

Testar vi så här istället då.

Dim sr As StreamReader = File.OpenText("test.txt")
Dim line As String
line = sr.ReadLine()
While Not input Is Nothing
   dim s() as string = line.Split(',')
   if double.Parse(s(1])) > 30 then
      TBSave.Text &= " " & line 
   end if
   line = sr.ReadLine()
End While
sr.Close()
Medlem sedan apr. 2004778 inlägg
#22

Problemet är att du måste lägga sr.ReadLine() sist i loopen. Du lägger den innan Do för att läsa första raden, kommer in och gör vad du ska och läser sen nästa.
Du får felet för att när du kommer in i loopen och har läst sista raden så läser du en rad till, line blir nothing och så krashar det.

Dim sr As StreamReader = New StreamReader("TestFile.txt")
Dim line As String
line = sr.ReadLine()
Do While Not line Is Nothing
   dim s() as string = line.Split(',')
   if double.Parse(s(1])) > 30 then
      TBSave.Text &= " " & line 
   end if
   line = sr.ReadLine()
Loop
sr.Close()
Medlem sedan aug. 200414 inlägg
#23

Ett stort tack till er!! Nu funkar det

133 ms totalt · 3 externa anrop · v20260731065814-full.232057fb
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)