Avatar billede marvind Nybegynder
08. februar 2006 - 12:36 Der er 13 kommentarer og
1 løsning

jeg kan ikke finde fejlen i den her klump kode

jeg kan ikke finde fejlen i den her
Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim linein As String
    Dim txtoutput As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oFile As System.IO.File
        Dim oRead As System.IO.StreamReader
        oRead = oFile.OpenText("C:\test.txt")
        While oRead.Peek <> -1
            linein = oRead.Read()
        End While
        oRead.Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.Items.Add(linein)
    End Sub
End Class


jeg vil have den til at udskrive inholdet af test.txt til en listbox(en linie af gangen)
men den skriver bar 106 istedet for inholdet af test.txt
Avatar billede 2c Nybegynder
08. februar 2006 - 12:46 #1
Et gæt:
Istedet for oRead.Read()
Kunne det være noget med ReadLine() eller ReadLn()
Avatar billede tjp Mester
08. februar 2006 - 12:57 #2
Har du tjekket indhold af linein i slutning af Button1_Click?
Avatar billede marvind Nybegynder
08. februar 2006 - 13:46 #3
*2c jeg prøvede med readline() og nu skriver den den første linie af txt filen(hvilket er rigtigt) men den skriver kun den første linie hver gang jeg trykker på button2

*tip hvad mener du med at tjekke inholdet?
Avatar billede kabbak Professor
08. februar 2006 - 13:57 #4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oFile As System.IO.File
        Dim oRead As System.IO.StreamReader
        oRead = oFile.OpenText("C:\test.txt")
        While oRead.Peek <> -1

        Do until  eof(1)

  ' såden gør man i VB6, der åbner man filen, med et nummer, jeg ved ikke med .Net
  ' men den skal køre i løkke intil filen er læst igennem
            linein = oRead.ReadLine()
          ListBox1.Items.Add(linein)

        Loop

        End While
        oRead.Close()
    End Sub
Avatar billede marvind Nybegynder
08. februar 2006 - 14:05 #5
jeg har flere gange prøvet at bruger EOF(1) men den siger bare at filnavn eller nummer er forkert...
Avatar billede kabbak Professor
08. februar 2006 - 14:07 #6
Do until  eof(1)

var et eksempel fra VB6, jeg kender ikke den måde du åbner filen på, men du skal have den til at køre i løkke indtil enden af filen
Avatar billede marvind Nybegynder
08. februar 2006 - 14:09 #7
det virker helt fint hvis jeg skriver
dim liniID as integer = 0
do until linieID = 6 (txt filer er 6 inier lang)
linein = oRead.ReadLine()
ListBox1.Items.Add(linein)
linieID = linieID + 1
Loop
Avatar billede kabbak Professor
08. februar 2006 - 14:10 #8
hvis de altid er 6 linier lan kan du jo bruge den
Avatar billede marvind Nybegynder
08. februar 2006 - 14:10 #9
jeg er sikker på at man kan bruger EOF() (bare ikke hvordan) i vb.net for jeg har set en anden gøre det(jeg kan bare ikke huske hvem)
Avatar billede marvind Nybegynder
08. februar 2006 - 14:56 #10
problemet er bare at der ikke altid er 6 linier... derfor har jeg brug for EOF() men jeg ved ikke hvordan man bruger den
Avatar billede marvind Nybegynder
08. februar 2006 - 15:31 #11
jeg fandt noget man kan bruger istedet for EOF() (men jeg vil stadig gerne vide hvordan jeg finder ud af hvad der skal stå i EOF())
man kan bare bruge
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oFile As System.IO.File
        Dim oRead As System.IO.StreamReader
        oRead = oFile.OpenText("C:\test.txt")
        While oRead.Peek <> -1
            linein = oRead.ReadLine()
            ListBox1.Items.Add(linein)
            If linein = "                                                                                                                                                                                    " Then
                GoTo slut
            End If
slut:
End While
        oRead.Close()
    End Sub
Avatar billede arne_v Ekspert
08. februar 2006 - 16:45 #12
Typisk bruger man noget a la dette:

        Dim line As String = rdr.ReadLine
        While Not (line Is Nothing)
            ' process line
            line = rdr.ReadLine
        End While
Avatar billede marvind Nybegynder
11. februar 2006 - 00:02 #13
2c > > smider du ikke lige et svar så du kan få nogle point?
Avatar billede 2c Nybegynder
11. februar 2006 - 18:44 #14
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester