Nežádoucí zápis do ListView   otázka

VB.NET

Zdravím,

řeším jednu záhadu a nemůžu přijít na to, že se mi do ListView zapisuje 2x stejná položka.

Mám dva list ( kov_tab a ListView2 )

Otevřu soubor a jsou-li data v souboru shodná s obsahem v kov_tab, tak se zapíše pár hodnot ze souboru do ListView2.

Bohužel se to zapisuje 2x.

Už jsem zkoušel snad všechno, ale pořád to nefunguje.

Poradí někdo prosíím.

Děkuji

Pavel

Dim kovani As New IO.StreamReader(cesta)
            While Not kovani.EndOfStream
                Dim kovadlo As String = kovani.ReadLine()
                For l As Integer = 0 To kov_tab.Items.Count - 1
                    If kovadlo.Contains(kov_tab.Items(l).SubItems(0).Text) Then
                        Dim oddeleni() As String = kovadlo.Split(";")
                        pozice_cislo = (oddeleni (1))
                        pozice_cislo = pozice_cislo.Trim()
                        nazev1 = (oddeleni (5))
                        nazev1 = nazev1.Trim()
                        hodnota1 = CInt(oddeleni (2))
                        hodnota2 = CInt(oddeleni (3))
                        slouceni = pozice_cislo & hodnota1 & hodnota2
                        ovladani = kov_tab.Items(l).SubItems(1).Text
                        Dim zapis As New ListViewItem()
                        zapis.Text = pozice_cislo
                        zapis.SubItems.Add(nazev1)
                        zapis.SubItems.Add(ovladani)
                        zapis.SubItems.Add(slouceni)
                        ListView2.Items.Add(zapis)
                    End If
                Next l
            End While
            kovani.Close()


nahlásit spamnahlásit spam 0 odpovědětodpovědět

zkuz přidat

Exit For

End If

Next l

End While

kovani.Close()

pokud je to to co hledáš

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Příkaz Exit For zabral.

Nechápu jak se mohl cyklus spustit znovu.

Moc děkuji za pomoc.

Pavel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě přikládám opravený kód.

Dim kovani As New IO.StreamReader("c:\test\11BR0012.b96")
        While Not kovani.EndOfStream
            Dim kovadlo As String = kovani.ReadLine()
            For l As Integer = 0 To kov_tab.Items.Count - 1
                If kovadlo.Contains(kov_tab.Items(l).SubItems(0).Text) Then
                    Dim oddeleni() As String = kovadlo.Split(";")
                    pozice_cislo = (oddeleni(1))
                    pozice_cislo = pozice_cislo.Trim()
                    nazev1 = (oddeleni(5))
                    nazev1 = nazev1.Trim()
                    hodnota1 = CInt(oddeleni(2))
                    hodnota2 = CInt(oddeleni(3))
                    slouceni = pozice_cislo & hodnota1 & hodnota2
                    ovladani = kov_tab.Items(l).SubItems(1).Text
                    Dim zapis As New ListViewItem()
                    zapis.Text = pozice_cislo
                    zapis.SubItems.Add(nazev1)
                    zapis.SubItems.Add(ovladani)
                    zapis.SubItems.Add(slouceni)
                    ListView2.Items.Add(zapis)
                    Exit For
                End If
            Next l
        End While
        kovani.Close()

Ještě jednou moc děkuji.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Kromě toho se celý kód mírně zrychlí.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback