In mijn programma wordt een txt-bestand ingelezen. Elke regel uit dit bestand wordt opgesplitst in drie delen die elk in een array terechtkomen. Het is nu de bedoeling dat ik een artikel in de combobox kan kiezen en dit verwijderen, dit lukt echter niet. Alle artikels blijven in de combobox staan. Als er een artikel verwijderd is, moet ik alles terug kunnen opslaan in een txt-bestand, ook dit lukt echter niet. Iemand die kan helpen?
Hier mijn code.
Hier mijn code.
Code:
Imports System.IO
Public Class frmArtikels
Dim artnaam(), artfoto() As String
Dim artprijs() As Decimal
Dim artikelSelect As New OpenFileDialog
Private Sub SorteerArtikelOplopend(ByRef artnaam() As String, ByVal artfoto() As String, ByVal artprijs() As Decimal)
Dim teller1, teller2, index As Integer
Dim temp1, temp2, temp3 As String
For teller1 = 0 To artnaam.Length - 1
index = teller1
For teller2 = teller1 + 1 To artnaam.Length - 1
If artnaam(teller2) < artnaam(index) Then
index = teller2
End If
Next
temp1 = artnaam(teller1)
temp2 = artfoto(teller1)
temp3 = artprijs(teller1)
artnaam(teller1) = artnaam(index)
artfoto(teller1) = artfoto(index)
artprijs(teller1) = artprijs(index)
artnaam(index) = temp1
artfoto(index) = temp2
artprijs(index) = temp3
Next
End Sub
Private Sub cboArtikels_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboArtikels.SelectedIndexChanged
txtPrijsArtikels.Text = CDec(artprijs(cboArtikels.SelectedIndex))
pctArtikels.ImageLocation = artfoto(cboArtikels.SelectedIndex)
uitvoer = cboArtikels.SelectedItem
totaal += CDec(txtPrijsArtikels.Text)
End Sub
Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click
frmKassa.txtBestelling.Text &= uitvoer & vbCrLf
frmKassa.txtTotaal.Text = CStr(totaal)
Me.Close()
End Sub
Private Sub mnuSorteerArtikelAZ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSorteerArtikelAZ.Click
Dim teller As Integer
cboArtikels.Items.Clear()
Call SorteerArtikelOplopend(artnaam, artfoto, artprijs)
For teller = 0 To artnaam.Length - 1
cboArtikels.Items.Add(artnaam(teller))
Next
End Sub
Private Sub mnuBestandOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandOpen.Click
Dim pad, hulpstring, invoer As String
Dim scheidingsteken As String = "$"
Dim positie1, positie2, index As Integer
With artikelSelect
.Filter = "Tekstbestanden (*.txt)|*.txt"
End With
invoer = artikelSelect.ShowDialog()
invoer = artikelSelect.FileName
Dim fs As New FileStream(invoer, FileMode.Open, FileAccess.Read)
Dim sr As New StreamReader(fs)
index = 0
While sr.Peek <> -1
ReDim Preserve artnaam(index)
ReDim Preserve artfoto(index)
ReDim Preserve artprijs(index)
pad = sr.ReadLine
positie1 = InStr(pad, scheidingsteken)
artnaam(index) = Deelvoorscheiding(pad, positie1)
hulpstring = Deelnascheiding(pad, positie1)
positie2 = InStr(hulpstring, scheidingsteken)
artprijs(index) = Deelvoorscheiding(hulpstring, positie2)
artfoto(index) = Deelnascheiding(hulpstring, positie2)
cboArtikels.Items.Add(artnaam(index))
index += 1
End While
fs.Close()
sr.Close()
pctArtikels.SizeMode = PictureBoxSizeMode.Zoom
txtPrijsArtikels.ReadOnly = True
txtPrijsArtikels.TextAlign = HorizontalAlignment.Right
cboArtikels.Select()
End Sub
Private Sub mnuBestandVerwijder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandVerwijder.Click
Dim antwoord As Windows.Forms.DialogResult
If cboArtikels.SelectedIndex <> -1 Then
MessageBox.Show("Wil je het artikel verijderen?", "Verwijderen artikel", MessageBoxButtons.YesNo)
If antwoord = Windows.Forms.DialogResult.Yes Then
artnaam(cboArtikels.SelectedIndex).Remove(cboArtikels.SelectedIndex)
CStr(artprijs(cboArtikels.SelectedIndex)).Remove(cboArtikels.SelectedIndex)
artfoto(cboArtikels.SelectedIndex).Remove(cboArtikels.SelectedIndex)
End If
End If
cboArtikels.Items.Clear()
For teller = 0 To artnaam.Length - 1
cboArtikels.Items.Add(artnaam(teller))
Next
End Sub
Private Sub mnuBestandBewaar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBestandBewaar.Click
Dim index As Integer
Dim fs As New FileStream(artikelSelect.FileName, FileMode.Create, FileAccess.Write)
Dim sw As New StreamWriter(fs)
For index = 0 To artnaam.Length - 1
sw.WriteLine(artnaam(index) & "$" & artprijs(index) & "$" & artfoto(index))
Next
sw.Close()
fs.Close()
End Sub
End Class