Code Optimierung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Code Optimierung

    OK eigentlich läuft dazu bereits ein Thema, aber evtl. bekomme ich hier eine verbesserten Code für mein vorhaben.

    ich lese mittlerweile eine txt Datei ein und nutze dafür eine DGV1 in der DGV1 wird in Spalte Celle ein String gesucht und soll dann in eine DGV2 geaddet werden klappt auch soweit.

    anbei ein Bildchen, so möchte ich es aber nicht wirklich

    Funktioniert_noch nicht wirklich.PNG

    aufgrund das ich 2 Prozeduren aufrufe Links und dann rechts wenn gefunden fügt er wie oben im Bild eine Zeile in DGV2 an rechts bleibt Feld leer da nun noch Rechts geprüft wird
    wenn gefunden wird eine weitere Zeile angefügt.

    Vbnet-Quellcode

    1. 'Code links suchen und in DGV2 bei Fund schreiben
    2. Private Sub Suche_CodelinksUndMarkiere(ByVal DGV As DataGridView, ByVal CodeLinks As String)
    3. Dim Seriennummer As String = String.Empty
    4. Dim Fahrgestellnummer As String = tbx_Fahrgestellnummer.Text
    5. Dim ZsbNummer As String = String.Empty
    6. Dim Links As String = tbx_Eingabe1_BC.Text
    7. Dim Rechts As String = String.Empty
    8. Dim aktZellenInhalt As String = String.Empty
    9. Dim anzahl_gefunden As Integer = 0
    10. With DGV
    11. 'alle Zeilen des DataGridView1 durchlaufen
    12. For i = 0 To DGV.Rows.Count - 1
    13. Dim Gefunden As Boolean = False
    14. 'da wir den Code nur in Spalte 0 (DataGridView1 Spaltenname "Seriennummer") suchen:
    15. 'Inhalt von Spalte 0 in Reihe i
    16. aktZellenInhalt = .Rows(i).Cells(0).Value.ToString
    17. 'prüfen, ob Inhalt die Zeichenkette "CodeLinks" enthält (egal ob am Anfang, in der Mitte oder am Ende)
    18. If aktZellenInhalt.ToLower.Contains(CodeLinks.ToLower) Then
    19. DataGridView1.Rows(i).Cells(3).Value = True
    20. 'DataGridView1.Rows(i).Selected = True
    21. 'DataGridView1.FirstDisplayedScrollingRowIndex = i
    22. 'Inhalt Spalte 0 rausfischen (Sperrliste)
    23. Seriennummer = .Rows(i).Cells(0).Value.ToString
    24. 'Inhalt Spalte 3 rausfischen (ZsbNummer)
    25. ZsbNummer = .Rows(i).Cells(1).Value.ToString
    26. 'beide Spalteninhalte dem DataGridView2 hinzufügen
    27. Dim Auswahl As String() = {Fahrgestellnummer, ZsbNummer, Links, Rechts}
    28. Me.DataGridView2.Rows.Add(Auswahl)
    29. End If
    30. Next i
    31. End With
    32. End Sub
    33. 'Code rechts suchen und in DGV2 bei Fund schreiben
    34. Private Sub Suche_CodeRechtsUndMarkiere(ByVal DGV As DataGridView, ByVal CodeRechts As String)
    35. Dim Seriennummer As String = String.Empty
    36. Dim Fahrgestellnummer As String = tbx_Fahrgestellnummer.Text
    37. Dim ZsbNummer As String = String.Empty
    38. Dim Links As String = String.Empty
    39. Dim Rechts As String = tbx_Eingabe2_BC.Text
    40. Dim aktZellenInhalt As String = String.Empty
    41. Dim anzahl_gefunden As Integer = 0
    42. With DGV
    43. 'alle Zeilen des DataGridView1 durchlaufen
    44. For i = 0 To DGV.Rows.Count - 1
    45. Dim Gefunden As Boolean = False
    46. 'da wir den Code nur in Spalte 0 (DataGridView1 Spaltenname "Seriennummer") suchen:
    47. 'Inhalt von Spalte 0 in Reihe i
    48. aktZellenInhalt = .Rows(i).Cells(0).Value.ToString
    49. 'prüfen, ob Inhalt die Zeichenkette "CodeRechts" enthält (egal ob am Anfang, in der Mitte oder am Ende)
    50. If aktZellenInhalt.ToLower.Contains(CodeRechts.ToLower) Then
    51. DataGridView1.Rows(i).Cells(3).Value = True
    52. 'DataGridView1.Rows(i).Selected = True
    53. 'DataGridView1.FirstDisplayedScrollingRowIndex = i
    54. 'Inhalt Spalte 0 rausfischen (Sperrliste)
    55. Seriennummer = .Rows(i).Cells(0).Value.ToString
    56. 'Inhalt Spalte 3 rausfischen (ZsbNummer)
    57. ZsbNummer = .Rows(i).Cells(1).Value.ToString
    58. 'beide Spalteninhalte dem DataGridView2 hinzufügen
    59. Dim Auswahl As String() = {Fahrgestellnummer, ZsbNummer, Links, Rechts}
    60. Me.DataGridView2.Rows.Add(Auswahl)
    61. End If
    62. Next i
    63. End With
    64. End Sub
    Alles anzeigen
    was ich erreichen möchte ist in die DGV2 nur eine Zeile zu adden bei Links gefunden oder rechts gefunden
    nicht gefunden soll Feld mit I.O gefüllt werden, wenn nichts gefunden wurde also weder Links noch Rechts dann die Zeile so adden

    Fahrgestellnummer aus Textbox und die verbleibenen Felder ZsbNummer = nicht betroffen, Links = i.O, Rechts = i.O (in DGV2 schreiben)
    oder wenn nur Links gefunden wird dann soll die Zeile so aussehen:
    Fahrgestellnummer aus Textbox ZsbNummer rausfischen, Links rausfischen, Rechts = I.O
    oder bei Rechts entsprechend anderrum.

    so das ich das also immer in einer Zeile habe.

    lässt sich das realisieren DGVs sind ungebunden, dienen nur der Anzeige.

    über eine Zielführende Hilfe etc. würde ich mich sehr freuen, da es für mich relativ wichtig ist das es dann auch so funktioniert eben nur eine Zeile da die "Zusamennhängt mit der Suche"
    und auch so besser interpretiert werden kann. Weil ja wenn nichts gefunden wird weder links noch rechts auch nichts in DGV2 geschrieben wird.

    bis bald


    EDIT:
    Beitrag ins Richtige UnterThread verschoben, Tag hinzugefügt
    Lg :thumbsup:
    Menorca03

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Darkronight () aus folgendem Grund: Beschreibung geändert.

  • OK, probier ich noch mal zu umschreiben.

    die DGV1 zeigt eine Liste "mit faulen Eiern"

    diese können in einer Linken / Rechten Kiste sein. Also in der Linken Kiste und in der Rechten Kiste könnte
    ein gutes oder oder ein faules Eier sein. Die Eiern sind "mit Code" beschriftet beide Kisten sind ein paar gehören also zusammen (Fahrgestellnummer)

    nun nehme ich aus der Kiste links ein Ei und schaue ob der "Code" in DGV1 vorhanden ist dann ist das Ei schlecht ich übertrage es nun so in die DGV2
    oder notiere es auf einen Zettel. Nun schau ich ob in der Rechten Kiste ein faules Ei drin ist Nein übertrage es in meine Liste (DGV2) Rechts i.O

    weiter gehts mit der nächsten Fahrgestellnummer aufschreiben in die Linke Kiste schauen, Rechte Kiste schauen Code mit DGV1 checken vorhanden
    in Liste Links / Rechts eintragen, nicht vorhanden Links i.O Rechts i.O

    nächste .......
    usw.

    also die Zeile in DGV2 ist im Prinzip mein Notizzettel ein faules Ei Links und oder Rechts gefunden Eintragen
    nichts gefunden Ei in Ordnung aber auch das aufschreiben. bis alle faulen Eier aus DGV1 gefunden sind.

    verständlicher?
    Lg :thumbsup:
    Menorca03