vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Listview Muster erkennen 
Autor: Manfred X
Datum: 04.12.22 15:40

Annahme: Muster überlappen sich nicht
Winforms-Formular
Public Class frmListMuster
 
    Dim lv As New System.Windows.Forms.ListView With {.Parent = Me, .Size = New _
      Size(400, 400), .View = View.Details}
 
    Dim musters As New List(Of Integer())
    Dim colors As New List(Of Color)
 
 
    Private Sub frmListMuster_Load(sender As Object, e As EventArgs) Handles _
      MyBase.Load
 
       'Muster  (nach Länge geordnet)
       musters.Add({25, 89, 185, 281, 377, 473, 537})
       musters.Add({89, 185, 281, 377, 473, 537})
       '..............
 
      'Markierfarben der Muster
       colors.Add(Color.Cyan)
       colors.Add(Color.Yellow)
       '...............
 
 
       Dim basecolor As Color = Color.White
 
       'Testdaten
       lv.Columns.Add("Ziffernfolge")
       For i As Integer = 0 To musters.Count - 1
        For k As Integer = 0 To musters(i).Length - 1
            lv.Items.Add(musters(i)(k))
        Next k
       Next i
       lv.Items.Add(1234)
       For i As Integer = 0 To musters.Count - 1
          For k As Integer = 0 To musters(i).Length - 1
             lv.Items.Add(musters(i)(k))
          Next k
       Next i
 
 
      'Markieren der gefundenen Musterfolge
      Dim ok As Boolean
 
      'Schleife über alle Muster
      For m As Integer = 0 To musters.Count - 1
 
        'Schleife über die Items für Suche nach Muster m
        For it As Integer = 0 To lv.Items.Count - 1
 
            ok = True
 
            'Schleife über Ziffernfolge vom Muster m
            For k As Integer = 0 To musters(m).Length - 1
                If it + k > lv.Items.Count - 1 Then
                    ok = False : Exit For
                End If
                If Not ColorsEqual(lv.Items(it + k).BackColor, basecolor) Then
                    ok = False : Exit For
                End If
                If CInt(lv.Items(it + k).Text) <> musters(m)(k) Then
                    ok = False : Exit For
                End If
            Next k
 
            If ok Then
                'Muster m ab Item It markieren mit color(m)
                For k As Integer = 0 To musters(m).Length - 1
                    lv.Items(it + k).BackColor = colors(m)
                Next k
            End If
        Next it
    Next m
 
End Sub
 
 
 
Private Function ColorsEqual(c1 As Color, c2 As Color) As Boolean
 
   If c1.R <> c2.R Then Return False
   If c1.G <> c2.G Then Return False
   If c1.B <> c2.B Then Return False
   Return True
 
End function


Beitrag wurde zuletzt am 04.12.22 um 15:43:22 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview Muster erkennen413Opossum0104.12.22 11:45
Re: Listview Muster erkennen238Manfred X04.12.22 14:18
Re: Listview Muster erkennen175Opossum0104.12.22 14:51
Re: Listview Muster erkennen184Manfred X04.12.22 15:40
Re: Listview Muster erkennen177Opossum0104.12.22 19:09
Re: Listview Muster erkennen196Manfred X04.12.22 21:12
Re: Listview Muster erkennen172Opossum0106.12.22 20:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel