webForumDet fria alternativet

hämta från en textfil till en array

.NET

4 svar · 442 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Frågan#1

Hej

Jag behöver lite hjälp med vb.net. Jag har hittills följande kod:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim s As String
        Dim i As Integer
        Dim sr As IO.StreamReader
        Dim arr1(9) As Single
        Dim arr2(9) As Single
        Dim arr3(9) As Single

        sr = IO.File.OpenText("fil.txt")

    End Sub

Jag vill att i arrayen arr1 ska de tio första talen hamna som finns i textfilen, men hur gör jag för att få det att fungera?

Tacksam för all hjälp :stud

Medlem sedan apr. 20012 266 inlägg
#2

Hur är textfilen formaterad?

Medlem sedan sep. 2005833 inlägg
#3

det står bara

1
2
3
4

osv. till 10 :r

Medlem sedan apr. 20012 266 inlägg
#4

Är rätt dålig på VB.NET men borde bli något liknande det här:

For i = 0 To 9
arr1(i) = Single.Parse(sr.ReadLine())
Next i
sr.Close();

Koden förutsätter att textfilen inte innehåller färre än 10 rader samt att dessa är siffror.

Medlem sedan sep. 2005833 inlägg
#5

tack. har nu följande kod:

             Dim i As Integer
        Dim sr As IO.StreamReader
        Dim sw As IO.StreamWriter
        Dim arr1(9) As String
        Dim arr2(9) As String
        Dim arr3(9) As String

        'Skapar filen så den hamnar rätt
        sw = IO.File.CreateText("fil.txt")

        With sw
            .WriteLine("1")
            .WriteLine("2")
            .WriteLine("3")
            .WriteLine("4")
            .WriteLine("5")
            .WriteLine("6")
            .WriteLine("7")
            .WriteLine("8")
            .WriteLine("9")
            .WriteLine("10")
            .Close()
        End With
        sw.Close()

        sr = IO.File.OpenText("fil.txt")

        For i = 0 To 9
            arr1(i) = sr.ReadLine()
        Next i

        sr.Close()

        sr = IO.File.OpenText("fil.txt")

        For i = 9 To 0 Step -1
            arr2(i) = sr.ReadLine()
        Next

        sr.Close()

        For i = 0 To 9 Step 1
            arr3(i) = ((CLng(arr2(i)) + CLng(arr1(i))) / 2)
        Next

        lib1.Items.AddRange(arr1)
        lib2.Items.AddRange(arr2)
        lib3.Items.AddRange(arr3)

    End Sub

Kan man göra på nott sätt att man slipper öppna textfilen en gång till när man ska loopa igenom raderna en andra gång?

Tacksam för all hjälp :stud

364 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
238 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)