Listbox inhoud schrijven naar een sequentieel bestand

Status
Niet open voor verdere reacties.

JenPi

Gebruiker
Lid geworden
11 jan 2015
Berichten
16
Hey,

ik ben een programmatje aan het schrijven waarin ik 2 listboxen heb.
Een eerste listbox die gevuld wordt met 6 namen uit een .txt file
Als ik op btnVerwerk klik, dan krijg ik 6x achtereen een inputbox om bijbehorende naam in te vullen, deze verschijnen vervolgens in een tweede lstbox. (zie afbeelding hieronder)

Lstbox.jpg

Nu wil ik de data uit beide lstboxen wegschrijven naar een nieuwe .txt bestand (duo.txt) op datzelfde path als ik op btnSchrijf klik
"Baard","Kale"
"Blake","Mortimer"
enz...

Kan iemand even de code bekijken en me vertellen waar en wat ik verkeerd doe?
Alvast bedankt!!

Private Sub btnLees_Click(sender As Object, e As EventArgs) Handles btnLees.Click
Dim strLinks(5) As String

Dim intTel As Integer = 0

FileOpen(1, "c:\vb2013\single.txt", OpenMode.Input)

Do While Not EOF(1)

Input(1, strLinks(intTel))

lstEneHelft.Items.Add(strLinks(intTel))

intTel = intTel + 1

Loop

FileClose(1)

btnLees.Enabled = Not (btnLees.Enabled)
btnVerwerk.Enabled = Not (btnVerwerk.Enabled)

End Sub


Private Sub btnVerwerk_Click(sender As Object, e As EventArgs) Handles btnVerwerk.Click
Dim intLinks As Integer
Dim strRechts As String


Do While intLinks < 6
strRechts = InputBox("Geef de partner van " & lstEneHelft.Items(intLinks).ToString(), "Partner", , , )
lstAndereHelft.Items.Add(strRechts)
intLinks += 1
Loop
btnVerwerk.Enabled = Not (btnVerwerk.Enabled)
btnSchrijf.Enabled = Not (btnSchrijf.Enabled)
End Sub

Private Sub btnSchrijf_Click(sender As Object, e As EventArgs) Handles btnSchrijf.Click
Dim bestand As IO.FileInfo = New IO.FileInfo("c:\vb2013\duo.txt")
Dim intBestand As Integer = FreeFile()
Dim i As Integer
bestand.Create()

For i = 0 To lstEneHelft.Items.Count - 1
Print(intBestand, lstEneHelft.Items.Item(i))
Next
FileClose(intBestand)
End Sub
End Class
 
Niet te volgen zonder codetags.
 
Public Class frmStrips


Private Sub btnLees_Click(sender As Object, e As EventArgs) Handles btnLees.Click
'variabelen
Dim strLinks(5) As String
Dim intTel As Integer = 0

'open file van gekende path
FileOpen(1, "c:\vb2013\single.txt", OpenMode.Input)

'haal tekst uit single.txt en schrijf naar lstEneHelft
Do While Not EOF(1)
Input(1, strLinks(intTel))
lstEneHelft.Items.Add(strLinks(intTel))
intTel = intTel + 1
Loop

'sluit de file
FileClose(1)

'deactiveer btnLees en activeer btnVerwerk
btnLees.Enabled = Not (btnLees.Enabled)
btnVerwerk.Enabled = Not (btnVerwerk.Enabled)

End Sub

Private Sub btnVerwerk_Click(sender As Object, e As EventArgs) Handles btnVerwerk.Click
'variabelen
Dim intLinks As Integer
Dim strRechts As String

'Gebruik de waarden 1 voor 1 uit lstEneHelft en gebruik deze in de vraagstelling van de inputbox
'Schrijf het antwoord naar de lstAndereHelft
Do While intLinks < 6
strRechts = InputBox("Geef de partner van " & lstEneHelft.Items(intLinks).ToString(), "Evaluatie", , , )
lstAndereHelft.Items.Add(strRechts)
intLinks += 1
Loop

'deactiveer btnVerwerk en activeer btnSchrijf
btnVerwerk.Enabled = Not (btnVerwerk.Enabled)
btnSchrijf.Enabled = Not (btnSchrijf.Enabled)
End Sub

Private Sub btnSchrijf_Click(sender As Object, e As EventArgs) Handles btnSchrijf.Click
'variabelen
Dim bestand As IO.FileInfo = New IO.FileInfo("c:\vb2013\duo.txt") 'variabele bestand als nieuwe file
Dim intBestand As Integer = FreeFile() 'ken een vrij filenumber to aan de file
Dim i As Integer
bestand.Create() 'creëer bestand

'schrijf de waarden uit de linker lstEneHelft naar het bestand
For i = 0 To lstEneHelft.Items.Count - 1
Print(intBestand, lstEneHelft.Items.Item(i))
Next
FileClose(intBestand) 'sluit de file
End Sub
End Class
 
Niet gelukt dus. Als je code plaatst, tik dan eerst dit: [ CODE]
Plak dan je code en tik dan dit er achteraan: [ /CODE]
Maar dan zonder de spaties achter de [ tekens.
 
Code:
Public Class frmStrips

    Private Sub btnLees_Click(sender As Object, e As EventArgs) Handles btnLees.Click
        'variabelen
        Dim strLinks(5) As String
        Dim intTel As Integer = 0

        'open file van gekende path
        FileOpen(1, "c:\vb2013\single.txt", OpenMode.Input)

        'haal tekst uit single.txt en schrijf naar lstEneHelft
        Do While Not EOF(1)
            Input(1, strLinks(intTel))
            lstEneHelft.Items.Add(strLinks(intTel))
            intTel = intTel + 1
        Loop

        'sluit de file
        FileClose(1)

        'deactiveer btnLees en activeer btnVerwerk
        btnLees.Enabled = Not (btnLees.Enabled)
        btnVerwerk.Enabled = Not (btnVerwerk.Enabled)

    End Sub

   
    Private Sub btnVerwerk_Click(sender As Object, e As EventArgs) Handles btnVerwerk.Click
        'variabelen
        Dim intLinks As Integer
        Dim strRechts As String

        'Gebruik de waarden 1 voor 1 uit lstEneHelft en gebruik deze in de vraagstelling van de inputbox
        'Schrijf het antwoord naar de lstAndereHelft
        Do While intLinks < 6
            strRechts = InputBox("Geef de partner van " & lstEneHelft.Items(intLinks).ToString(), "Evaluatie", , , )
            lstAndereHelft.Items.Add(strRechts)
            intLinks += 1
        Loop

        'deactiveer btnVerwerk en activeer btnSchrijf
        btnVerwerk.Enabled = Not (btnVerwerk.Enabled)
        btnSchrijf.Enabled = Not (btnSchrijf.Enabled)
    End Sub

    Private Sub btnSchrijf_Click(sender As Object, e As EventArgs) Handles btnSchrijf.Click
        'variabelen
        Dim bestand As IO.FileInfo = New IO.FileInfo("c:\vb2013\duo.txt") 'variabele bestand als nieuwe file 
        Dim intBestand As Integer = FreeFile() 'ken een vrij filenumber to aan de file
        Dim i As Integer
        bestand.Create() 'creëer bestand

        'schrijf de waarden uit de linker lstEneHelft naar het bestand
        For i = 0 To lstEneHelft.Items.Count - 1
            Print(intBestand, lstEneHelft.Items.Item(i))
        Next
        FileClose(intBestand) 'sluit de file
    End Sub
End Class
 
Ok dan :)
In de routine btnSchrijf lees je alleen de regels uit de listbox lstEneHelft en niet de regels uit de listbox lstAndereHelft.
Die informatie komt dus niet mee.

Declareer een string variabele waarin je eerst regel i uit de ene listbox plaatst en dan de regel i uit de andere listbox eraan vast plakt d.m.v. het & teken. Daarna schrijf je die variabele in het bestand duo.txt met:
Print(intBestand, JeStringVariabele)
 
Laatst bewerkt:
Ok dan :)
In de routine btnSchrijf lees je alleen de regels uit de listbox lstEneHelft en niet de regels uit de listbox lstAndereHelft.
Die informatie komt dus niet mee.

Declareer een string variabele waarin je eerst regel i uit de ene listbox plaatst en dan de regel i uit de andere listbox eraan vast plakt d.m.v. het & teken. Daarna schrijf je die variabele in het bestand duo.txt met:
Print(intBestand, JeStringVariabele)

Ja inderdaad, omdat ik het eerst wou proberen met de items uit de ene lstbox, alvorens mij te wagen aan de combinatie van beide :)
maar hoe dan ook, hij blijft steeds hangen op de regel 'print(intBestand, strDuo)'

Code:
Private Sub btnSchrijf_Click(sender As Object, e As EventArgs) Handles btnSchrijf.Click
        'variabelen
        Dim bestand As IO.FileInfo = New IO.FileInfo("c:\vb2013\duo.txt") 'variabele bestand als nieuwe file 
        Dim intBestand As Integer = FreeFile() 'ken een vrij filenumber to aan de file
        Dim i As Integer
        Dim strDuo As String

        bestand.Create() 'creëer bestand

        'schrijf de waarden uit de linker lstEneHelft naar het bestand

        For i = 0 To lstEneHelft.Items.Count - 1
            strDuo = lstEneHelft.Items(i).ToString() & lstAndereHelft.Items(i).ToString()
            Print(intBestand, strDuo)
        Next
        FileClose(intBestand) 'sluit de file
    End Sub
[\code]
 
Code:
Private Sub btnSchrijf_Click(sender As Object, e As EventArgs) Handles btnSchrijf.Click
        'variabelen
        Dim bestand As IO.FileInfo = New IO.FileInfo("c:\vb2013\duo.txt") 'variabele bestand als nieuwe file 
        Dim intBestand As Integer = FreeFile() 'ken een vrij filenumber to aan de file
        Dim i As Integer
        Dim strDuo As String

        bestand.Create() 'creëer bestand

        'schrijf de waarden uit de linker lstEneHelft naar het bestand

        For i = 0 To lstEneHelft.Items.Count - 1
            strDuo = lstEneHelft.Items(i).ToString() & lstAndereHelft.Items(i).ToString()
            Print(intBestand, strDuo)
        Next
        FileClose(intBestand) 'sluit de file
    End Sub
 
Logisch, want je hebt het bestand nog niet geopend.
 
Hey Edmoor,

bedankt voor de tips, ik heb nog wat moeten puzzelen maar ik ben er uiteindelijk geraakt!

thanks again :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan