Wilkeurige regel uit een tekstbestand lezen

Status
Niet open voor verdere reacties.

bcubing

Gebruiker
Lid geworden
4 dec 2008
Berichten
37
Ik heb veel geprobeerd en heb ook op google gezocht, zonder resultaat.

Ik ben bezig met een programma waarin een tekstbestand geladen word.
Maar ik wil graag dat mijn programma een willekeurige regel uit een tekstbestand leest.
Maar ik wil wel dat ik steeds een regel kan toevoegen...

Kan iemand me helpen?
 
Je kan geen regelnummers lezen via een TextReader, wel als je deze zou inladen in een multiline textbox, of een array. Van die laatste heb ik een simpel voorbeeldje voor je gecode.

Code:
Public Class Form1

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

        Dim TextReader As System.IO.TextReader = New System.IO.StreamReader("c:\test.txt") 'Open je textfile in een TextReader

        Dim Array As New ArrayList
        Dim AantalLijnen As Integer

        Do While TextReader.Peek <> -1 'Kijk of textreader geen fout returnt
            Array.Add(TextReader.ReadLine) 'Stop de data van een textreader lijn in de Array
            AantalLijnen += 1 'AantalLijnen = AantalLijnen + 1
        Loop

        TextReader.Close() 'Sluit de textfile, want je Array is gevuld.

        Dim Willekeur As New System.Random 'zorg dat Willekeur een willekeurig getal kan worden.

        Debug.Print(Array(Willekeur.Next(0, AantalLijnen)))
        'Willekeur is een getal tussen 0 en het aantal lijnen, kies met dat getal de lijn uit je Array.
        'En print de Array-lijn in je Immediate Window.

        Array.Clear() 'Maak je Array Leeg als je er niets meer mee doet.

    End Sub

End Class

Ik hoop dat je hier iets aan hebt.

Mvg Pizara
 
Laatst bewerkt:
Hoe kan ik het beste die regel in een Label zetten?

Mod-edit: De volgende keer graag op de knop "Reageer op vraag" klikken in plaats van "Quote" :)
 
Laatst bewerkt door een moderator:
Code:
Label1.Text = Array(Willekeur.Next(0, AantalLijnen))

in plaats van de Debug.Print lijn
 
Je kan geen regelnummers lezen via een TextReader, wel als je deze zou inladen in een multiline textbox, of een array. Van die laatste heb ik een simpel voorbeeldje voor je gecode.

Code:
//code

Ik hoop dat je hier iets aan hebt.

Mvg Pizara

Als het tekstbestand maar niet te groot is :p
 
en als je nu niet wilt dat het willekeurig een regel zoekt, maar dat je een bepaalde regel aanduid.
Wat moet je dan veranderen in de code?

mvg:)
 
hangt er vanaf,

gaat het om een regelnummer of een bepaalde reeks characters in een lijn?
 
momenteel heb ik code om tekst uit een bepaalde regel te halen. maar als men dan de tekstfile aanpast, heeft men een probleem.

ik wil dus een file met waarden en benamingen inlezen.

bvb:
--------------
tekst1, 0.7457
tekst2, 1.34102
----------------

kan men dan via een code in de file laten zoeken naar bvb tekst1, en dan de waarde erachter gebruiken?

mvg
 
Als je alleen een stukje begintext wilt lezen , ziet ie er ongeveer zo uit :

Code:
Public Class Form1

    Dim LineInput As String
    Dim FoundString As String


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

        Dim TextReader As System.IO.TextReader = New System.IO.StreamReader("c:\temp\text1.txt")

        Try

            Do While TextReader.Peek <> -1
                LineInput = TextReader.ReadLine
                [B]If LineInput.StartsWith("tekst6") = True Then FoundString = LineInput[/B]          
            Loop

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


        MsgBox(FoundString)

    End Sub

End Class

Mocht je code verderop in de regel willen lezen ziet het if statement er zo uit.

Code:
If LineInput.Contains("1.34102") = True Then FoundString = LineInput
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan