Live-Forum - Die aktuellen Beiträge
Datum
Titel
03.05.2024 10:49:02
03.05.2024 10:43:56
03.05.2024 07:38:32
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListBoxen 2,3 OK aber 1 ohne Daten

ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 15:11:53
Trubadix

Userbild

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 15:17:16
Daniel
schönes Bild, aber vielleicht solltest du ein paar Worte dazu schreiben.
Und das hochladen der Datei wäre auch nicht schlecht, denn hier muss man wahrscheinlich etwas tiefer hineinschauen, als es das Bild erlaubt.
Gruß Daniel


AW: ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 15:45:22
Hans-Jürgen
Anbei die Datei mit dem VBA-Code, es steckt viel mehr drin auch einiger Müll, aber es geht um ListBoxStand1 bis 3.


Public Class FormAblaufsteuerung
    ' =============================
    ' Vorlauf Tagesordner erstellen
    ' =============================
    Public Structure arOutline
        Public arDatum As String
        Public arSchuetze As String
        Public arZeit As String
        Public arLine As String
        Public arDatei As String
    End Structure
    Public IndexList As New List(Of arOutline)
    Dim nameTeamPlayer As String
    Public Sub FormAblaufsteuerung_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'TODO: Diese Codezeile lädt Daten in die Tabelle "Esa_ErgebnisseDataSet.Ergebnisse". Sie können sie bei Bedarf verschieben oder entfernen.
        ' Me.ErgebnisseTableAdapter.Fill(Me.Esa_ErgebnisseDataSet.Ergebnisse)
        ' Löschen Liste der Tagesordner je Stand
        If My.Computer.FileSystem.FileExists(toDaten & toStand1 & "all.dat") Then
            My.Computer.FileSystem.DeleteFile(toDaten & toStand1 & "all.dat")
        End If
        If My.Computer.FileSystem.FileExists(toDaten & toStand2 & "all.dat") Then
            My.Computer.FileSystem.DeleteFile(toDaten & toStand2 & "all.dat")
        End If
        If My.Computer.FileSystem.FileExists(toDaten & toStand3 & "all.dat") Then
            My.Computer.FileSystem.DeleteFile(toDaten & toStand3 & "all.dat")
        End If
        ' Leere Tagesordner auf Server entfernen
        ReorgServer()
        ' Variable für Tagesordner aufbereiten
        TextBoxDatum.Text = Date.Now.Year & "-" & Format((Date.Now.Month()), "00")
        ' Tagesordner je Stand erstellen
        If My.Computer.FileSystem.FileExists(toDaten & toStand1 & ErgFolder) Then
            msg = ErgFolder & " Tagesordner Stand 1 ist vorhanden."
            ListBoxMeldungView(title, msg)
        Else
            My.Computer.FileSystem.CreateDirectory(toDaten & toStand1 & ErgFolder)
            msg = ErgFolder & " Tagesordner Stand 1 wurde erstellt."
            ListBoxMeldungView(title, msg)
        End If
        If My.Computer.FileSystem.FileExists(toDaten & toStand2 & ErgFolder) Then
            msg = ErgFolder & " Tagesordner Stand 2 ist vorhanden."
            ListBoxMeldungView(title, msg)
        Else
            My.Computer.FileSystem.CreateDirectory(toDaten & toStand2 & ErgFolder)
            msg = ErgFolder & " Tagesordner Stand 2 wurde erstellt."
            ListBoxMeldungView(title, msg)
        End If
        If My.Computer.FileSystem.FileExists(toDaten & toStand3 & ErgFolder) Then
            msg = ErgFolder & " Tagesordner Stand 3 ist vorhanden."
            ListBoxMeldungView(title, msg)
        Else
            My.Computer.FileSystem.CreateDirectory(toDaten & toStand3 & ErgFolder)
            msg = ErgFolder & " Tagesordner Stand 3 wurde erstellt."
            ListBoxMeldungView(title, msg)
        End If

        msg = " Einen Moment Geduld bitte, ich räume den Server auf."
        ListBoxMeldungView(title, msg)
    End Sub
    Public Sub TabStand1_Click(sender As System.Object, e As System.EventArgs) Handles TabStand1.Click
        ' ==========================================================
        ' Sammeldatei all.dat enthält alle Ordner mit Schießtagen. 
        ' ==========================================================
        path = "c:\Daten\Stand1\all.dat"
        ListBoxStand1.Items.Clear()
        msg = " Laden Stand 1 läuft."
        ListBoxMeldungView(title, msg)
        ListBoxStand1.Refresh()
        Using sr = New IO.StreamReader(path, System.Text.Encoding.Default)
            Do While sr.Peek() >= 0
                srLine = sr.ReadLine()
                Select Case srLine.Contains(TextBoxDatum.Text)
                    Case True
                        ListBoxStand1.Items.Add(sr.ReadLine())
                        nameOrdner = Pfad + "\Stand1\" + srLine
                        StandUserNames1(nameOrdner)
                    Case False
                        Console.WriteLine(srLine)
                End Select
            Loop
        End Using
        ' ========================================================
        ' Liste Sortieren, anzeigen und Statusmeldung ausgeben
        ' ========================================================
        'StandUserNames1(nameOrdner)
        SortBox1()
        ListBoxStand1.Show()
        ' ListBoxStand1.Refresh()
        msg = " Laden Stand 1 ist beendet."
        ListBoxMeldungView(title, msg)
    End Sub
    Public Sub StandUserNames1(nameOrdner)
        ' =============================
        ' Dateien Stand 1  ab Jahr nach Auswahl suchen
        ' =============================
        ' ListBoxStand1.Items.Clear()
        If System.IO.Directory.Exists(nameOrdner) Then
            For Each nameDatei As String In
                System.IO.Directory.GetFiles(nameOrdner)
                testPos = InStr(1, nameDatei, "2", CompareMethod.Text)
                nameFile = Strings.Mid(nameDatei, testPos, 10)
                nameDateiEx = Strings.Right(nameDatei, 4)
                word = Chr(34) & Chr(40)
                recNr = 0
                recNrResult = 0
                Select Case nameDateiEx
                    Case Is = ".xml"
                        word = "ListBoxStand1"
                        XMLReader(nameDatei, word, Outline)
                    Case Is = ".dat"
                        'getFileContent1(nameDatei, word, Outline)
                End Select
            Next nameDatei
            SortBox1()
            ListBoxStand1.Show()
            ListBoxStand1.Refresh()
            msg = " Laden Stand 1 Datei " & nameFile & " ist beendet."
            ListBoxMeldungView(title, msg)
        Else
            msg = " Zu dieser Auswahl existieren keine Schießdaten"
            ListBoxMeldungView(title, msg)
        End If
    End Sub
    Public Sub TabControl1_change(sender As System.Object, e As System.EventArgs) Handles TabControl1.Click
        TabPart = Me.TabControl1.SelectedIndex
        Select Case Me.TabControl1.SelectedIndex
            Case 0  ' Stand 1
                TabStand1_Click(TabControl1, e)
                ListBoxStand1_SelectedIndexChanged(TabControl1, e)
            Case 1  ' Stand 2
                TabStand2_Click(TabControl1, e)
                ListBoxStand2_SelectedIndexChanged(TabControl1, e)
            Case 2  ' Stand 3
                TabStand3_Click(TabControl1, e)
                ListBoxStand3_SelectedIndexChanged(TabControl1, e)
        End Select
    End Sub
    Public Sub ListBoxStand1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ListBoxStand1.SelectedIndexChanged
        posBox = Me.ListBoxStand1.IndexFromPoint(Me.ListBoxStand1.PointToClient(MousePosition))
        If posBox > -1 Then
            nameValue = Me.ListBoxStand1.SelectedItem.ToString
            nameHerg = Strings.Right(nameValue, 11)
            nameWork = Strings.Left(nameValue, 10)
            nameOrdner = Strings.Replace(nameOrdner, nameFile, nameWork, 1, -1)
            ListBoxStand1_SelectedIndexClick(nameOrdner & "\" & nameHerg, toEsa & nameHerg)
        Else
            'MessageBox.Show("Eintrag nicht mit der Maus getroffen, nochmal versuchen!")
        End If
        ListBoxStand1.Refresh()
        ListBoxStand1.Show()
    End Sub
    Public Function ListBoxStand1_SelectedIndexClick(nameFile, toEsa)
        Select Case My.Computer.FileSystem.FileExists(toEsa)
            Case True
                My.Computer.FileSystem.DeleteFile(toEsa)
                My.Computer.FileSystem.CopyFile(nameFile, toEsa)
                msg = " Kopieren Datei " & toEsa & " erfolgreich, kann jetzt mit Esa-Server bearbeitet werden."
                ListBoxMeldungView(title, msg)
            Case False
                Computer.FileSystem.CopyFile(nameFile, toEsa)
                msg = " Kopieren Datei " & toEsa & " erfolgreich, kann jetzt mit Esa-Server bearbeitet werden."
                ListBoxMeldungView(title, msg)
        End Select
    End Function
    Public Sub TabStand2_Click(sender As System.Object, e As System.EventArgs) Handles TabStand2.Click
        ' ==========================================================
        ' Sammeldatei all.dat enthält alle Ordner mit Schießtagen. 
        ' ==========================================================
        path = "c:\Daten\Stand2\all.dat"
        ListBoxStand2.Items.Clear()
        msg = " Laden Stand 2 läuft."
        ListBoxMeldungView(title, msg)
        ListBoxStand2.Refresh()
        Using sr = New IO.StreamReader(path, System.Text.Encoding.Default)
            Do While sr.Peek() >= 0
                srLine = sr.ReadLine()
                Select Case srLine.Contains(TextBoxDatum.Text)
                    Case True
                        ListBoxStand2.Items.Add(sr.ReadLine())
                        nameOrdner = Pfad + "\Stand2\" + srLine
                        StandUserNames2(nameOrdner)
                    Case False
                        Console.WriteLine(sr.ReadLine())
                End Select
            Loop
        End Using
        ' ========================================================
        ' Liste Sortieren, anzeigen und Statusmeldung ausgeben
        ' ========================================================
        'StandUserNames2(nameOrdner)
        SortBox2()
        ListBoxStand2.Show()
        msg = " Laden Stand 2 ist beendet."
        ListBoxMeldungView(title, msg)
    End Sub
    Public Sub StandUserNames2(nameOrdner)
        ' =============================
        ' Dateien Stand 2  ab Jahr nach Auswahl suchen
        ' =============================
        On Error Resume Next
        'ListBoxStand2.Items.Clear()
        If System.IO.Directory.Exists(nameOrdner) Then
            For Each nameDatei As String In
                System.IO.Directory.GetFiles(nameOrdner)
                testPos = InStr(1, nameDatei, "2", CompareMethod.Text)
                nameFile = Strings.Mid(nameDatei, testPos, 12)
                nameDateiEx = Strings.Right(nameDatei, 4)
                word = Chr(34) & Chr(40)
                recNr = 0
                recNrResult = 0
                Select Case nameDateiEx
                    Case Is = ".xml"
                        word = "ListBoxStand2"
                        XMLReader(nameDatei, word, Outline)
                    Case Is = ".dat"
                        'getFileContent2(nameDatei, word, Outline)
                End Select
            Next nameDatei
            SortBox2()
            ListBoxStand2.Show()
            'ListBoxStand2.Refresh()
            msg = " Laden Stand 2 Datei " & nameFile & " ist beendet."
            ListBoxMeldungView(title, msg)
        Else
            msg = " Zu dieser Auswahl existieren keine Schießdaten"
            ListBoxMeldungView(title, msg)
        End If
    End Sub
    Public Sub getFileContent2(nameDatei, word, Outline)
        ' ==================================================
        ' Ergebnisdatei Stand 2 lesen und zur Anzeige aufbereiten
        ' ==================================================
        Dim found As Boolean = False
        On Error Resume Next
        For Each line As String In System.IO.File.ReadLines(nameDatei, System.Text.Encoding.Default)
            recNr = recNr + 1
            lineTest = line
            Console.WriteLine(lineTest)
            Select Case line.Contains(word)
                Case True
                    'lineTest = line
                    Outline = line
                    Outline = Strings.Mid(Outline, 10) ' Name
                    Outline = Outline.Replace(Chr(34), "") ' Name ohne Hochkomma
                    nameDatum = Strings.Right(nameOrdner, 10)
                    nameJahr = Strings.Left(nameDatum, 4)
                    nameTag = Strings.Right(nameDatum, 2)
                    nameMonat = Strings.Mid(nameDatum, 6, 2)
                    nameDatum = nameTag & "." & nameMonat & "." & nameJahr
                    posStart = InStr(1, Outline, ":", CompareMethod.Text)
                    posStart = posStart - 17
                    posZeit = InStr(1, Outline, ":", CompareMethod.Text)
                    posZeit = posZeit - 3
                    ' dataGridViewStand2 colZeit-----------------------
                    colZeitStart = CObj(Strings.Mid(Outline, posZeit, 9))
                    ' dataGridViewStand2 colName-----------------------
                    colPlayer = CObj(Strings.Mid(Outline, 1, posStart))
                    '--------------------------------------------------
                    Outline = Strings.Replace(Outline, nameDatum, "")
                    colDatum = CObj(nameDatum)
                    '--------------------------------------------------
                    Outline = StrConv(Outline, vbLowerCase)
                    Outline = StrConv(Outline, vbProperCase)
                    Outline = Outline.Replace(", , ", "-")
                    Outline = Trim(Outline)
            End Select
            '-------------------------
            ' ungültige überspringen
            '-------------------------
            Select Case line.Contains(wordResult) 'Match
                Case True
                    recNrResult = recNr + 6         ' Ergebnis Gesamt
                    recNrAnzahl = recNr + 5         ' Anzahl Schüsse
                    recNrZeitMatchStart = recNr + 3 ' Match Startzeit
                    recNrDatumMatch = recNr + 2
            End Select
            Select Case line.Contains("Linie")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") , ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") 1, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(")  1, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") 3, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(")  3, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") #, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(")  1, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case recNr
                Case Is = recNrAnzahl
                    colAnzahlSchuesse = line
                Case Is = recNrResult
                    nameHerg = Strings.Right(nameDatei, 11)
                    colDateiErgebnis = CObj(nameHerg)
                    colErgebisGesamt = CObj(line)
                    '--------------------------------------------------
                    Select Case posStart
                        Case Is  8  ' 2 Tabs
                            Outline = Outline & Chr(9) & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 8  ' 1 Tabs
                            Outline = Outline & "_________" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 9  ' 1 Tabs
                            Outline = Outline & "_________" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 20 ' 1 Tab
                            Outline = Outline & "____" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 19 ' 1 Tab
                            Outline = Outline & "____" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 18 ' 1 Tab
                            Outline = Outline & "____" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 17 ' 1 Tab
                            Outline = Outline & "___" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 16 ' 1 Tab
                            Outline = Outline & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 14 ' 1 Tab
                            Outline = Outline & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 15 ' 1 Tab
                            Outline = Outline & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is  16 ' 2 Tabs
                            Outline = Outline & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is  15 ' 2 Tabs
                            Outline = Outline & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Else
                            Outline = Outline & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                    End Select
                    ListBoxStand2.Items.Add(nameFile & "  " & Outline)
                    colRows = colRows + 1
                    colCells = colCells + 1
                    GoTo BreakPoint
            End Select
        Next
BreakPoint:
    End Sub
    Public Sub ListBoxStand2_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBoxStand2.SelectedIndexChanged
        posBox = Me.ListBoxStand1.IndexFromPoint(Me.ListBoxStand2.PointToClient(MousePosition))
        If posBox > -1 Then
            nameValue = Me.ListBoxStand2.SelectedItem.ToString
            nameHerg = Strings.Right(nameValue, 11)
            nameWork = Strings.Left(nameValue, 10)
            nameOrdner = Strings.Replace(nameOrdner, nameFile, nameWork, 1, -1)
            ListBoxStand2_SelectedIndexClick(nameOrdner & "\" & nameHerg, toEsa & nameHerg)
        Else
            ' MessageBox.Show("Eintrag nicht mit der Maus getroffen, nochmal versuchen!")
        End If
        ListBoxStand2.Refresh()
        ListBoxStand2.Show()
    End Sub
    Public Function ListBoxStand2_SelectedIndexClick(nameFile, toEsa)
        Select Case My.Computer.FileSystem.FileExists(toEsa)
            Case True
                My.Computer.FileSystem.DeleteFile(toEsa)
                My.Computer.FileSystem.CopyFile(nameFile, toEsa)
                msg = " Kopieren Datei " & toEsa & " erfolgreich, kann jetzt mit Esa-Server bearbeitet werden."
                ListBoxMeldungView(title, msg)
            Case False
                My.Computer.FileSystem.CopyFile(nameFile, toEsa)
                msg = " Kopieren Datei " & toEsa & " erfolgreich, kann jetzt mit Esa-Server bearbeitet werden."
                ListBoxMeldungView(title, msg)
        End Select
    End Function
    Public Sub TabStand3_Click(sender As System.Object, e As System.EventArgs) Handles TabStand3.Click
        path = "c:\Daten\Stand3\all.dat"
        ListBoxStand3.Items.Clear()
        msg = " Laden Stand 3 läuft."
        ListBoxMeldungView(title, msg)
        ListBoxStand3.Refresh()
        Using sr = New IO.StreamReader(path, System.Text.ASCIIEncoding.Default)
            Do While sr.Peek() > -1
                srLine = sr.ReadLine()
                Select Case srLine.Contains(TextBoxDatum.Text)
                    Case True
                        ListBoxStand3.Items.Add(sr.ReadLine())
                        nameOrdner = Pfad + "\Stand3\" + srLine
                        StandUserNames3(nameOrdner)
                    Case False
                        Console.WriteLine(sr.ReadLine())
                    Case Else
                        Console.WriteLine(sr.ReadLine())
                End Select
            Loop
        End Using
        ' ========================================================
        ' Liste Sortieren, anzeigen und Statusmeldung ausgeben
        ' ========================================================
        StandUserNames3(nameOrdner)
        SortBox3()
        ListBoxStand3.Show()
        msg = " Laden Stand 3 ist beendet."
        ListBoxMeldungView(title, msg)
    End Sub
    Public Sub StandUserNames3(nameOrdner)
        ' =============================
        ' Dateien Stand 3  ab Jahr nach Auswahl suchen
        ' =============================
        'ListBoxStand3.Items.Clear()
        On Error Resume Next
        If System.IO.Directory.Exists(nameOrdner) Then
            For Each nameDatei As String In
                System.IO.Directory.GetFiles(nameOrdner)
                testPos = InStr(1, nameDatei, "2", CompareMethod.Text)
                nameFile = Strings.Mid(nameDatei, testPos, 10)
                nameDateiEx = Strings.Right(nameDatei, 4)
                word = Chr(34) & Chr(40)
                recNr = 0
                recNrResult = 0
                Select Case nameDateiEx
                    Case Is = ".xml"
                        word = "ListBoxStand3"
                        XMLReader(nameDatei, word, Outline)
                    Case Is = ".dat"
                        'getFileContent2(nameDatei, word, Outline)
                End Select
            Next nameDatei
            SortBox3()
            ListBoxStand3.Show()
            ListBoxStand3.Refresh()
            msg = " Laden Stand 3 Datei " & nameFile & " ist beendet."
            ListBoxMeldungView(title, msg)
        Else
            msg = " Zu dieser Auswahl existieren keine Schießdaten"
            ListBoxMeldungView(title, msg)
        End If
    End Sub
    Public Sub getFileContent3(nameDatei, word, Outline)
        ' ==================================================
        ' Ergebnisdatei Stand 3 lesen und zur Anzeige aufbereiten
        ' ==================================================
        Dim found As Boolean = False
        On Error Resume Next
        For Each line As String In System.IO.File.ReadLines(nameDatei, System.Text.Encoding.Default)
            recNr = recNr + 1
            lineTest = line
            Console.WriteLine(lineTest)
            Select Case line.Contains(word)
                Case True
                    'lineTest = line
                    Outline = line
                    Outline = Strings.Mid(Outline, 10) ' Name
                    Outline = Outline.Replace(Chr(34), "") ' Name ohne Hochkomma
                    nameDatum = Strings.Right(nameOrdner, 10)
                    nameJahr = Strings.Left(nameDatum, 4)
                    nameTag = Strings.Right(nameDatum, 2)
                    nameMonat = Strings.Mid(nameDatum, 6, 2)
                    nameDatum = nameTag & "." & nameMonat & "." & nameJahr
                    posStart = InStr(1, Outline, ":", CompareMethod.Text)
                    posStart = posStart - 17
                    posZeit = InStr(1, Outline, ":", CompareMethod.Text)
                    posZeit = posZeit - 3
                    ' dataGridViewStand3 colZeit-----------------------
                    colZeitStart = CObj(Strings.Mid(Outline, posZeit, 9))
                    ' dataGridViewStand3 colName-----------------------
                    colPlayer = CObj(Strings.Mid(Outline, 1, posStart))
                    '--------------------------------------------------
                    Outline = Strings.Replace(Outline, nameDatum, "")
                    colDatum = CObj(nameDatum)
                    '--------------------------------------------------
                    Outline = StrConv(Outline, vbLowerCase)
                    Outline = StrConv(Outline, vbProperCase)
                    Outline = Outline.Replace(", , ", "-")
                    Outline = Trim(Outline)
            End Select
            '-------------------------
            ' ungültige überspringen
            '-------------------------
            Select Case line.Contains(wordResult) 'Match
                Case True
                    recNrResult = recNr + 6         ' Ergebnis Gesamt
                    recNrAnzahl = recNr + 5         ' Anzahl Schüsse
                    recNrZeitMatchStart = recNr + 3 ' Match Startzeit
                    recNrDatumMatch = recNr + 2
            End Select
            Select Case line.Contains("Linie")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") , ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") 1, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(")  1, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") 3, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(")  3, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(") #, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case line.Contains(")  1, ")
                Case True
                    GoTo BreakPoint
            End Select
            Select Case recNr
                Case Is = recNrAnzahl
                    colAnzahlSchuesse = line
                Case Is = recNrResult
                    nameHerg = Strings.Right(nameDatei, 11)
                    colDateiErgebnis = CObj(nameHerg)
                    colErgebisGesamt = CObj(line)
                    '--------------------------------------------------
                    Select Case posStart
                        Case Is  8  ' 2 Tabs
                            Outline = Outline & Chr(9) & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 8  ' 1 Tabs
                            Outline = Outline & "_________" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 9  ' 1 Tabs
                            Outline = Outline & "_________" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 20 ' 1 Tab
                            Outline = Outline & "____" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 19 ' 1 Tab
                            Outline = Outline & "____" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 18 ' 1 Tab
                            Outline = Outline & "____" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 17 ' 1 Tab
                            Outline = Outline & "___" & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 16 ' 1 Tab
                            Outline = Outline & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 14 ' 1 Tab
                            Outline = Outline & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is = 15 ' 1 Tab
                            Outline = Outline & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is  16 ' 2 Tabs
                            Outline = Outline & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Is  15 ' 2 Tabs
                            Outline = Outline & Chr(9) & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                        Case Else
                            Outline = Outline & Chr(9) & "Erg.: " & colErgebisGesamt & "_" & "_" & nameHerg
                    End Select
                    ListBoxStand3.Items.Add(nameFile & "  " & Outline)
                    colRows = colRows + 1
                    colCells = colCells + 1
                    GoTo BreakPoint
            End Select
        Next
BreakPoint:
    End Sub
    Public Sub ListBoxStand3_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBoxStand3.SelectedIndexChanged
        posBox = Me.ListBoxStand1.IndexFromPoint(Me.ListBoxStand3.PointToClient(MousePosition))
        If posBox > -1 Then
            nameValue = Me.ListBoxStand3.SelectedItem.ToString
            nameHerg = Strings.Right(nameValue, 11)
            nameWork = Strings.Left(nameValue, 11)
            nameOrdner = Strings.Replace(nameOrdner, nameFile, nameWork, 1, -1)
            ListBoxStand3_SelectedIndexClick(nameOrdner & "\" & nameHerg, toEsa & nameHerg)
        Else
            ' MessageBox.Show("Eintrag nicht mit der Maus getroffen, nochmal versuchen!")
        End If
        ListBoxStand3.Refresh()
        ListBoxStand3.Show()
    End Sub
    Public Function ListBoxStand3_SelectedIndexClick(nameFile, toEsa)
        Select Case My.Computer.FileSystem.FileExists(toEsa)
            Case True
                My.Computer.FileSystem.DeleteFile(toEsa)
                My.Computer.FileSystem.CopyFile(nameFile, toEsa)
                msg = " Kopieren Datei " & toEsa & " erfolgreich, kann jetzt mit Esa-Server bearbeitet werden."
                ListBoxMeldungView(title, msg)
            Case False
                My.Computer.FileSystem.CopyFile(nameFile, toEsa)
                msg = " Kopieren Datei " & toEsa & " erfolgreich, kann jetzt mit Esa-Server bearbeitet werden."
                ListBoxMeldungView(title, msg)
        End Select
    End Function
    Public Function GetFolderFile(toEsa, nameValue, nameHerg)

    End Function
    Private Sub ButtonReorgStand1_Click(sender As System.Object, e As System.EventArgs) Handles ButtonReorgStand1.Click
        'Stand 1 reorganisieren
        IPAkt = IPSt1
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand1-Technik prüfen (Sicherung 4, Stand1, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
                Return
            Case Is = True
                msg = IPAkt & " Stand1 ist OK, Verarbeitung geht weiter"
                ListBoxMeldungView(title, msg)
                strDriveLetter = strDriveLetter1
                strNetworkShare = strNetworkShare1
                strUsername = strUsername1
                CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
                Pfad = "x:\Daten"
                msg = " Reorganisation Stand 1 läuft, bitte warten."
                ListBoxMeldungView(title, msg)
                SearchAndDestroyStand1(Pfad)
        End Select
    End Sub
    Private Sub ButtonReorgStand2_Click(sender As System.Object, e As System.EventArgs) Handles ButtonReorgStand2.Click
        'Stand 2 prüfen
        IPAkt = IPSt2
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand2-Technik prüfen (Sicherung 4, Stand2, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
                Return
            Case Is = True
                msg = IPAkt & " Stand2 ist OK, Verarbeitung geht weiter"
                ListBoxMeldungView(title, msg)
                strDriveLetter = strDriveLetter2
                strNetworkShare = strNetworkShare2
                strUsername = strUsername2
                CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
                Pfad = "y:\Daten"
                msg = " Reorganisation Stand 2 läuft, bitte warten."
                ListBoxMeldungView(title, msg)
                SearchAndDestroyStand2(Pfad)
        End Select
    End Sub
    Private Sub ButtonReorgStand3_Click(sender As System.Object, e As System.EventArgs) Handles ButtonReorgStand3.Click
        'Stand 3 prüfen
        IPAkt = IPSt3
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand3-Technik prüfen (Sicherung 4, Stand3, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
                Return
            Case Is = True
                msg = IPAkt & " Stand3 ist OK, Verarbeitung geht weiter"
                ListBoxMeldungView(title, msg)
                strDriveLetter = strDriveLetter3
                strNetworkShare = strNetworkShare3
                strUsername = strUsername3
                CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
                Pfad = "z:\Daten"
                msg = " Reorganisation Stand 3 läuft, bitte warten."
                ListBoxMeldungView(title, msg)
                SearchAndDestroyStand3(Pfad)
        End Select
    End Sub
    Public Sub ButtonReorgServer_Click(sender As System.Object, e As System.EventArgs) Handles ButtonReorgServer.Click
        Pfad = "c:\Daten"
        msg = " Reorganisation " & toDaten & " " & toStand1 & " läuft, bitte warten."
        ListBoxMeldungView(title, msg)
        If My.Computer.FileSystem.FileExists(toDaten & toStand1 & "all.dat") Then
            My.Computer.FileSystem.DeleteFile(toDaten & toStand1 & "all.dat")
        End If
        msg = " Reorganisation " & toDaten & " " & toStand2 & " läuft, bitte warten."
        ListBoxMeldungView(title, msg)
        If My.Computer.FileSystem.FileExists(toDaten & toStand2 & "all.dat") Then
            My.Computer.FileSystem.DeleteFile(toDaten & toStand2 & "all.dat")
        End If
        msg = " Reorganisation " & toDaten & " " & toStand3 & " läuft, bitte warten."
        ListBoxMeldungView(title, msg)
        If My.Computer.FileSystem.FileExists(toDaten & toStand3 & "all.dat") Then
            My.Computer.FileSystem.DeleteFile(toDaten & toStand3 & "all.dat")
        End If
        SearchAndDestroyServer(Pfad)
    End Sub
    Public Sub ReorgServer()
        Pfad = "c:\Daten"
        msg = " Reorganisation läuft, bitte warten."
        ListBoxMeldungView(title, msg)
        SearchAndDestroyServer(Pfad)
    End Sub
    '--------------------------------
    ' Tooltips
    '--------------------------------

    '================================Tooltips Ende====================================================

    Public Sub ListBoxMeldungView(title As String, msg As String)
        TextMsg = title & msg
        m = m + 1
        Select Case m
            Case Is > 3
                ListBoxMeldung1.Items.Clear()
                ListBoxMeldung1.Refresh()
                m = 0
        End Select
        ListBoxMeldung1.Items.Add(TextMsg)
        ListBoxMeldung1.Refresh()
    End Sub
    Public Sub SearchAndDestroyStand1(ByVal Pfad As String)
        'Weitere Ordner durchsuchen
        For Each Ordner As String In IO.Directory.GetDirectories(Pfad)
            SearchAndDestroyStand1(Ordner)
        Next Ordner
        'Falls keine Dateien und Unterordner existieren // Ordner löschen
        If IO.Directory.GetFiles(Pfad).Length = 0 And IO.Directory.GetDirectories(Pfad).Length = 0 Then
            IO.Directory.Delete(Pfad)
            msg = Pfad & " Ordner ist ungültig, leer und wird übersprungen und gelösch."
            ListBoxMeldungView(title, msg)
        Else
            DatText = Strings.Right(Pfad, 10)
            Ergebnis = InStr(1, Pfad, "Stand", vbTextCompare)
            Select Case Ergebnis
                Case Is > 0
                    Stand = Strings.Mid(Pfad, Ergebnis, 6)
                Case Is = 0
                    Stand = Strings.Left(Pfad, 1)
            End Select
            Select Case Microsoft.VisualBasic.Left(DatText, 1)
                Case "1"
                    msg = DatText & " gültigen Ergebnis-Ordner > 1900 gefunden."
                    ListBoxMeldungView(title, msg)
                Case "2"
                    msg = DatText & " gültigen Ergebnis-Ordner > 2000 gefunden."
                    ListBoxMeldungView(title, msg)
            End Select
        End If
        msg = " Hinzufügen " & DatText & " erfolgreich."
        ListBoxMeldungView(title, msg)
        ' close all.dat
    End Sub 'Alle Ordner suchen und ggf. löschen
    Public Sub SearchAndDestroyStand2(ByVal Pfad As String)
        'Weitere Ordner durchsuchen
        For Each Ordner As String In IO.Directory.GetDirectories(Pfad)
            SearchAndDestroyStand2(Ordner)
        Next Ordner
        'Falls keine Dateien und Unterordner existieren // Ordner löschen
        If IO.Directory.GetFiles(Pfad).Length = 0 And IO.Directory.GetDirectories(Pfad).Length = 0 Then
            IO.Directory.Delete(Pfad)
            msg = Pfad & " Ordner ist ungültig, leer und wird übersprungen und gelösch."
            ListBoxMeldungView(title, msg)
        Else
            DatText = Strings.Right(Pfad, 10)
            Ergebnis = InStr(1, Pfad, "Stand", vbTextCompare)
            Select Case Ergebnis
                Case Is > 0
                    Stand = Strings.Mid(Pfad, Ergebnis, 6)
                Case Is = 0
                    Stand = Strings.Left(Pfad, 1)
            End Select
            Select Case Microsoft.VisualBasic.Left(DatText, 1)
                Case "1"
                    msg = DatText & " gültigen Ergebnis-Ordner > 1900 gefunden."
                    ListBoxMeldungView(title, msg)
                Case "2"
                    msg = DatText & " gültigen Ergebnis-Ordner > 2000 gefunden."
                    ListBoxMeldungView(title, msg)
            End Select
        End If
        msg = " Hinzufügen " & DatText & " erfolgreich."
        ListBoxMeldungView(title, msg)
        ' close all.dat
    End Sub 'Alle Ordner suchen und ggf. löschen
    Public Sub SearchAndDestroyStand3(ByVal Pfad As String)
        'Weitere Ordner durchsuchen
        For Each Ordner As String In IO.Directory.GetDirectories(Pfad)
            SearchAndDestroyStand3(Ordner)
        Next Ordner
        'Falls keine Dateien und Unterordner existieren // Ordner löschen
        If IO.Directory.GetFiles(Pfad).Length = 0 And IO.Directory.GetDirectories(Pfad).Length = 0 Then
            dirName = Pfad
            dSecurity = IO.Directory.GetAccessControl(dirName)
            dSecurity.AddAccessRule(ac_rule3)
            IO.Directory.SetAccessControl(dirName, dSecurity)
            System.IO.Directory.Delete(dirName)
            msg = Pfad & " Ordner ist ungültig, leer und wird übersprungen und gelösch."
            ListBoxMeldungView(title, msg)
        Else
            DatText = Strings.Right(Pfad, 10)
            Ergebnis = InStr(1, Pfad, "Stand", vbTextCompare)
            Select Case Ergebnis
                Case Is > 0
                    Stand = Strings.Mid(Pfad, Ergebnis, 6)
                Case Is = 0
                    Stand = Strings.Left(Pfad, 1)
            End Select
            Select Case Microsoft.VisualBasic.Left(DatText, 1)
                Case "1"
                    msg = DatText & " gültigen Ergebnis-Ordner > 1900 gefunden."
                    ListBoxMeldungView(title, msg)
                Case "2"
                    msg = DatText & " gültigen Ergebnis-Ordner > 2000 gefunden."
                    ListBoxMeldungView(title, msg)
            End Select
        End If
        msg = " Hinzufügen " & DatText & " erfolgreich."
        ListBoxMeldungView(title, msg)
    End Sub 'Alle Ordner suchen und ggf. löschen
    Public Sub SearchAndDestroyServer(ByVal Pfad As String)
        'Weitere Ordner durchsuchen
        For Each Ordner As String In IO.Directory.GetDirectories(Pfad)
            SearchAndDestroyServer(Ordner)
        Next Ordner
        'Falls keine Dateien und Unterordner existieren // Ordner löschen
        If IO.Directory.GetFiles(Pfad).Length = 0 And IO.Directory.GetDirectories(Pfad).Length = 0 Then
            ' aber nicht den aktuellen Tagesordner
            DatText = Strings.Right(Pfad, 10)
            Select Case DatText
                Case Is > tagesDatum
                    IO.Directory.Delete(Pfad)
                    msg = Pfad & " Ordner ist ungültig, leer und wird übersprungen und gelösch."
                    ListBoxMeldungView(title, msg)
            End Select
        Else
            DatText = Strings.Right(Pfad, 10)
            Ergebnis = InStr(1, Pfad, "Stand", vbTextCompare)
            Select Case Ergebnis
                Case Is > 0
                    Stand = Strings.Mid(Pfad, Ergebnis, 6)
                Case Is = 0
                    Stand = Strings.Left(Pfad, 1)
            End Select

            Select Case Microsoft.VisualBasic.Left(DatText, 1)
                Case "1"
                    msg = DatText & " Ergebnis-Ordner wird der Auswahl hinzugefügt"
                    ListBoxMeldungView(title, msg)
                    AllDat(DatText, Pfad, Stand) ' write pfad to all.dat or at end
                Case "2"
                    msg = DatText & " Ergebnis-Ordner wird der Auswahl hinzugefügt"
                    ListBoxMeldungView(title, msg)
                    AllDat(DatText, Pfad, Stand) ' write pfad to all.dat or at end
            End Select
        End If
        msg = " Hinzufügen " & DatText & " erfolgreich."
        ListBoxMeldungView(title, msg)
        ' close all.dat
    End Sub 'Alle Ordner suchen und ggf. löschen

    Public Sub NewListBox(i, sr, BoxName)
        Me.Controls.AddRange(New Control() {ListBoxStand1, ListBoxStand2, ListBoxStand3})
        BoxItems.Add(New BoxItem(sr.ReadLine()))
        'BoxName.DataSource = BoxItem
        BoxName.ValueMember.Insert(i, (sr.ReadLine()))
        Select Case BoxName
            Case Is = "ListBoxStand1"
                AddHandler ListBoxStand1.SelectedValueChanged, AddressOf ListBoxStand1_SelectedValueChanged
            Case Is = "ListBoxStand2"
                AddHandler ListBoxStand2.SelectedValueChanged, AddressOf ListBoxStand2_SelectedValueChanged
            Case Is = "ListBoxStand3"
                AddHandler ListBoxStand3.SelectedValueChanged, AddressOf ListBoxStand3_SelectedValueChanged
        End Select
    End Sub
    Public Sub ListBoxStand1_SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs)
        If ListBoxStand1.SelectedIndex > -1 Then
            ListBoxStand1.Text = ListBoxStand1.SelectedValue.ToString()
        End If
    End Sub 'ListBoxStand1_SelectedValueChanged
    Public Sub ListBoxStand2_SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs)
        If ListBoxStand2.SelectedIndex > -1 Then
            ListBoxStand2.Text = ListBoxStand2.SelectedValue.ToString()
        End If
    End Sub 'ListBoxStand2_SelectedValueChanged
    Public Sub ListBoxStand3_SelectedValueChanged(ByVal sender As Object, ByVal e As EventArgs)
        If ListBoxStand3.SelectedIndex > -1 Then
            ListBoxStand3.Text = ListBoxStand3.SelectedValue.ToString()
        End If
    End Sub 'ListBoxStand3_SelectedValueChanged

    Private Function vbModeless() As Object
        Throw New NotImplementedException
    End Function
    Public Sub SortBox1()
        ListBoxStand1.Sorted = True  'Sortieren
        ListBoxStand1.Sorted = False 'Sortierung aufheben
        anzahl_Items = ListBoxStand1.Items.Count - 1
        For i As Integer = anzahl_Items To 0 Step -1
            ListBoxStand1.Items.Add(ListBoxStand1.Items.Item(i))
            Console.WriteLine("Box1: " & ListBoxStand1.Items.Item(i))
        Next
        'Jetzt noch die alten Einträge entfernen
        For i As Integer = anzahl_Items To 0 Step -1
            ListBoxStand1.Items.RemoveAt(i)
        Next
    End Sub
    Public Sub SortBox2()
        ListBoxStand2.Sorted = True  'Sortieren
        ListBoxStand2.Sorted = False 'Sortierung aufheben
        anzahl_Items = ListBoxStand2.Items.Count - 1
        For i As Integer = anzahl_Items To 0 Step -1
            ListBoxStand2.Items.Add(ListBoxStand2.Items.Item(i))
            Console.WriteLine("Box2: " & ListBoxStand2.Items.Item(i))
        Next
        'Jetzt noch die alten Einträge entfernen
        For i As Integer = anzahl_Items To 0 Step -1
            ListBoxStand2.Items.RemoveAt(i)
            Console.WriteLine("Box2: " & ListBoxStand2.Items.Item(i))
        Next
    End Sub
    Public Sub SortBox3()
        ListBoxStand3.Sorted = True  'Sortieren
        ListBoxStand3.Sorted = False 'Sortierung aufheben
        anzahl_Items = ListBoxStand3.Items.Count - 1
        For i As Integer = anzahl_Items To 0 Step -1
            ListBoxStand3.Items.Add(ListBoxStand3.Items.Item(i))
            Console.WriteLine("Box3: " & ListBoxStand3.Items.Item(i))
        Next
        'Jetzt noch die alten Einträge entfernen
        For i As Integer = anzahl_Items To 0 Step -1
            ListBoxStand3.Items.RemoveAt(i)
        Next
    End Sub
    Public Sub AllDat(DatText, Pfad, Stand)
        Select Case Stand
            Case "Stand1"
                path = "c:\Daten\" & Stand & "\all.dat"
            Case "Stand2"
                path = "c:\Daten\" & Stand & "\all.dat"
            Case "Stand3"
                path = "c:\Daten\" & Stand & "\all.dat"
            Case "x"
                path = "x:\Daten\all.dat"
            Case "y"
                path = "y:\Daten\all.dat"
            Case "z"
                path = "z:\Daten\all.dat"
            Case Is > "stand1, stand2, stand3, x, y, z"
                path = "c:\Daten\all.dat"
        End Select
        ' This text is added only once to the file. 
        If Not IO.File.Exists(path) Then
            ' Create a file to write to.
            Using sw As IO.StreamWriter = IO.File.CreateText(path)
                sw.WriteLine(DatText)
            End Using
        Else
            ' This text is always added, making the file longer over time 
            ' if it is not deleted.
            Using sw As IO.StreamWriter = IO.File.AppendText(path)
                sw.WriteLine(DatText)
            End Using
        End If
        ' ====================================
        ' Testausgabe auf der Console
        ' ====================================
        ' Open the file to read from. 
        ' Using sr As StreamReader = File.OpenText(path)
        ' Do While sr.Peek() >= 0
        ' Console.WriteLine(sr.ReadLine())
        ' Loop
        ' End Using

    End Sub
    '=========================================
    ' Netzverbindung mit Ping Prüfungen
    '=========================================
    Public Function TestIP(ByVal url As String, ByVal maxwait As Integer) As Boolean
        Try
            Dim result As System.Net.NetworkInformation.PingReply = pinger.Send(IPAkt, maxwait)
            If result.Status = Net.NetworkInformation.IPStatus.Success Then
                Return True
            Else
                Return False
            End If
        Catch
            Return False
        End Try
    End Function

    Public Sub ButtonStaendeOnline_Click(sender As System.Object, e As System.EventArgs) Handles ButtonStaendeOnline.Click
        ' ==============
        ' Server prüfen
        ' ==============
        IPAkt = IPSvr
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Server-Technik prüfen (Kabel zum Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
            Case Is = True
                msg = IPAkt & " Server ist OK"
                ListBoxMeldungView(title, msg)
        End Select
        ' ==================
        ' Router prüfen
        ' ==================
        IPAkt = IPRtr
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Router-Technik prüfen (Sicherung 4, Kabel, Router)"
                ListBoxMeldungView(title, msg)
            Case Is = True
                msg = IPAkt & " Router ist OK"
                ListBoxMeldungView(title, msg)
        End Select
        ' =================
        ' Stand 1 prüfen
        ' =================
        IPAkt = IPSt1
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand1-Technik prüfen (Sicherung 4, Stand1, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
            Case Is = True
                msg = IPAkt & " Stand1 ist OK"
                ListBoxMeldungView(title, msg)
        End Select
        If Not My.Computer.FileSystem.DirectoryExists("X:\") Then
            msg = IPAkt & " Laufwerk X Stand1 ist NICHT verbunden, Reparaturversuch läuft"
            ListBoxMeldungView(title, msg)
            strDriveLetter = strDriveLetter1
            strNetworkShare = strNetworkShare1
            strUsername = strUsername1
            CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
        End If
        Try
        Catch ex As System.IO.DirectoryNotFoundException
            Select Case IO.Directory.GetDirectories("x:").Length
                Case Is > 0
                    msg = IPAkt & " Laufwerk X Stand1 ist verbunden"
                    ListBoxMeldungView(title, msg)
                Case Is = 0
                    msg = IPAkt & " Laufwerk X Stand1 ist NICHT verbunden, Reparaturversuch läuft"
                    ListBoxMeldungView(title, msg)
                    strDriveLetter = strDriveLetter1
                    strNetworkShare = strNetworkShare1
                    strUsername = strUsername1
                    CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
            End Select
        End Try
        ' ==================
        ' Stand 2 prüfen
        ' ==================
        IPAkt = IPSt2
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand2-Technik prüfen (Sicherung 4, Stand2, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
            Case Is = True
                msg = IPAkt & " Stand2 ist OK"
                ListBoxMeldungView(title, msg)
        End Select
        If Not My.Computer.FileSystem.DirectoryExists("Y:\") Then
            msg = IPAkt & " Laufwerk Y Stand2 ist NICHT verbunden, Reparaturversuch läuft"
            ListBoxMeldungView(title, msg)
            strDriveLetter = strDriveLetter2
            strNetworkShare = strNetworkShare2
            strUsername = strUsername2
            CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
        End If
        Try
        Catch ex As System.IO.DirectoryNotFoundException
            Select Case IO.Directory.GetDirectories("y:").Length
                Case Is > 0
                    msg = IPAkt & " Laufwerk Y Stand2 ist verbunden"
                    ListBoxMeldungView(title, msg)
                Case Is = 0
                    msg = IPAkt & " Laufwerk Y Stand2 ist NICHT verbunden, Reparaturversuch läuft"
                    ListBoxMeldungView(title, msg)
                    strDriveLetter = strDriveLetter2
                    strNetworkShare = strNetworkShare2
                    strUsername = strUsername2
                    CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
            End Select
        End Try
        ' =================
        ' Stand 3 prüfen
        ' =================
        IPAkt = IPSt3
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand3-Technik prüfen (Sicherung 4, Stand3, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
            Case Is = True
                msg = IPAkt & " Stand3 ist OK"
                ListBoxMeldungView(title, msg)
        End Select
        If Not My.Computer.FileSystem.DirectoryExists("Z:\") Then
            msg = IPAkt & " Laufwerk Z Stand3 ist NICHT verbunden, Reparaturversuch läuft"
            ListBoxMeldungView(title, msg)
            strDriveLetter = strDriveLetter3
            strNetworkShare = strNetworkShare3
            strUsername = strUsername3
            CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
        End If
        Try
        Catch ex As System.IO.DirectoryNotFoundException
            Select Case IO.Directory.GetDirectories("z:").Length
                Case Is > 0
                    msg = IPAkt & " Laufwerk Z Stand3 ist verbunden"
                    ListBoxMeldungView(title, msg)
                Case Is = 0
                    msg = IPAkt & " Laufwerk Z Stand3 ist NICHT verbunden, Reparaturversuch läuft"
                    ListBoxMeldungView(title, msg)
                    strDriveLetter = strDriveLetter3
                    strNetworkShare = strNetworkShare3
                    strUsername = strUsername3
                    CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
            End Select
        End Try
    End Sub
    ' ==================================================
    ' Netzwerkfreigaben prüfen und bei Bedarf erstellen
    ' ==================================================
    Public Sub CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
        Select Case IO.DriveInfo.GetDrives.Length.ToString(strDriveLetter)
            Case Is > ""
                msg = IPAkt & " Laufwerk " & strDriveLetter & "ist verbunden"
                ListBoxMeldungView(title, msg)
            Case Is = ""
                msg = IPAkt & " Laufwerk " & strDriveLetter & " ist NICHT verbunden." & vbCr &
                "Das System versucht das zu reparieren"
                ListBoxMeldungView(title, msg)
                System.Diagnostics.Process.Start("net.exe", "use " & strDriveLetter & " " & strNetworkShare & " /user:" & strUsername & " " & strPassword)
        End Select
    End Sub

    Private Sub ButtonHolAktDatStand1_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHolAktDatStand1.Click
        'Stand 1 prüfen
        IPAkt = IPSt1
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand1-Technik prüfen (Sicherung 4, Stand1, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
                Return
            Case Is = True
                msg = IPAkt & " Stand1 ist OK, Verarbeitung geht weiter"
                ListBoxMeldungView(title, msg)
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(
                    "c:\esa",
                    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "herg*.*")
                    My.Computer.FileSystem.DeleteFile(foundFile)
                Next
                strDriveLetter = strDriveLetter1
                strNetworkShare = strNetworkShare1
                strUsername = strUsername1
                CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(
                    "x:\intarso\esa2015",
                    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "herg*.*")
                    nameFile = Microsoft.VisualBasic.Right(foundFile, 10)
                    FileCopy(foundFile, toEsa & nameFile)
                    FileCopy(foundFile, toDaten & toStand1 & ErgFolder & "\" & nameFile)
                    msg = IPAkt & " Daten " & nameFile & "von Stand 1 wurden zum Server erfolgreich übertragen. "
                    ListBoxMeldungView(title, msg)
                Next
                msg = IPAkt & " Alle Daten Stand 1 können jetzt mit ESA aufgerufen werden."
                ListBoxMeldungView(title, msg)
        End Select
    End Sub

    Private Sub ButtonHolAktDatStand2_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHolAktDatStand2.Click
        'Stand 2 prüfen
        IPAkt = IPSt2
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand2-Technik prüfen (Sicherung 4, Stand2, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
                Return
            Case Is = True
                msg = IPAkt & " Stand2 ist OK, Verarbeitung geht weiter"
                ListBoxMeldungView(title, msg)
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(
                    "c:\esa",
                    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "herg*.*")
                    My.Computer.FileSystem.DeleteFile(foundFile)
                Next
                strDriveLetter = strDriveLetter2
                strNetworkShare = strNetworkShare2
                strUsername = strUsername2
                CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(
                    "y:\intarso\esa2015",
                    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "herg*.*")
                    nameFile = Microsoft.VisualBasic.Right(foundFile, 10)
                    FileCopy(foundFile, toEsa & nameFile)
                    FileCopy(foundFile, toDaten & toStand2 & ErgFolder & "\" & nameFile)
                    msg = IPAkt & " Daten " & nameFile & "von Stand 2 wurden zum Server erfolgreich übertragen. "
                    ListBoxMeldungView(title, msg)
                Next
                msg = IPAkt & " Alle Daten Stand 2 können jetzt mit ESA aufgerufen werden."
                ListBoxMeldungView(title, msg)
        End Select
    End Sub

    Private Sub ButtonHolAktDatStand3_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHolAktDatStand3.Click
        'Stand 3 prüfen
        IPAkt = IPSt3
        Select Case TestIP(IPAkt, maxwait)
            Case Is = False
                msg = IPAkt & " Stand3-Technik prüfen (Sicherung 4, Stand3, Kabel, Router, IP-Adresse)"
                ListBoxMeldungView(title, msg)
                Return
            Case Is = True
                msg = IPAkt & " Stand3 ist OK, Verarbeitung geht weiter"
                ListBoxMeldungView(title, msg)
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(
                    "c:\esa",
                    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "herg*.*")
                    My.Computer.FileSystem.DeleteFile(foundFile)
                Next
                strDriveLetter = strDriveLetter3
                strNetworkShare = strNetworkShare3
                strUsername = strUsername3
                CheckNetDrive(strDriveLetter, strNetworkShare, strUsername, strPassword)
                For Each foundFile As String In My.Computer.FileSystem.GetFiles(
                    "z:\intarso\esa2015",
                    Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "herg*.*")
                    nameFile = Microsoft.VisualBasic.Right(foundFile, 10)
                    FileCopy(foundFile, toEsa & nameFile)
                    FileCopy(foundFile, toDaten & toStand3 & ErgFolder & "\" & nameFile)
                    msg = IPAkt & " Daten " & nameFile & " von Stand 3 wurden zum Server erfolgreich übertragen. "
                    ListBoxMeldungView(title, msg)
                Next
                msg = IPAkt & " Alle Daten Stand 3 können jetzt mit ESA aufgerufen werden."
                ListBoxMeldungView(title, msg)
        End Select
    End Sub
    Private Sub TextBoxDatum_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBoxDatum.TextChanged

    End Sub

    Private Sub ButtonExit_Click(sender As System.Object, e As System.EventArgs) Handles ButtonExit.Click
        Application.Exit()
    End Sub
    Private Function StreamReader() As Object
        Throw New NotImplementedException
    End Function

    Private Sub ToolTip1_Popup(sender As System.Object, e As System.Windows.Forms.PopupEventArgs) Handles ToolTip1.Popup

    End Sub

    Private Sub Filter(p1 As String, p2 As String, p3 As Boolean)
        Throw New NotImplementedException
    End Sub

    Private Sub DataGridViewStand3_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs)

    End Sub
    ' ==================================================
    ' XML Reader
    ' ==================================================
    Public Sub XMLReader(nameDatei, word, Outline)
        ' ==================================================
        ' Ergebnisdatei Stand 1 lesen und zur Anzeige aufbereiten
        ' ==================================================
        ' Wir benötigen einen XmlReader für das Auslesen der XML-Datei 
        xmlFile = nameDatei
        xmlCounter = 0
        xmlGesamt = 0
        Dim XMLReader As Xml.XmlReader = New Xml.XmlTextReader(xmlFile)
        ' Es folgt das Auslesen der XML-Datei 
        With XMLReader
            Do While .Read ' Es sind noch Daten vorhanden 
                ' Welche Art von Daten liegt an?
                testParm = .NodeType
                Select Case .NodeType
                    ' Ein Element 
                    Case Xml.XmlNodeType.Element
                        xmlChk = .Name
                        xmlDepht = .Depth
                        If xmlChk > "Bezeichnung" AndAlso xmlChk > "TitelName" AndAlso xmlChk > "Gesamt" Then
                            GoTo Weiter
                        End If
                        Console.WriteLine("Es folgt ein Element vom Typ " & .Name)
                        ' Alle Attribute (Name-Wert-Paare) abarbeiten
                        If .AttributeCount > 0 Then
                            ' Es sind noch weitere Attribute vorhanden 
                            While .MoveToNextAttribute ' nächstes 
                                Console.WriteLine("Feldname: " & .Name &
                                    " -> " &
                                    "Feldwert: " & .Value)
                            End While
                        End If
                        ' Ein Text 
                    Case Xml.XmlNodeType.Text
                        Console.WriteLine("Es folgt ein Text: " & .Value)
                        ' Bzeicnung von Wettbewerb
                        If .Depth = 2 AndAlso xmlChk = "Bezeichnung" AndAlso xmlCounter  1 Then
                            Outline = Outline & "   " & .Value
                            xmlCounter = xmlCounter + 1
                        End If
                        ' TitelName
                        If .Depth = 4 AndAlso xmlChk = "TitelName" Then
                            Outline = Outline & "   " & .Value
                        End If
                        ' Gesamt von Probe überspringen
                        If .Depth = 4 AndAlso xmlChk = "Gesamt" Then
                            xmlGesamt = xmlGesamt + 1
                        End If
                        If .Depth = 6 AndAlso xmlChk = "Gesamt" Then
                            xmlGesamt = xmlGesamt + 1
                        End If
                        ' Gesamt von Match übernehmen
                        If .Depth = 4 AndAlso xmlChk = "Gesamt" AndAlso xmlGesamt > 1 Then
                            Outline = Outline & "   " & .Value
                            If word = "ListBoxStand1" Then
                                ListBoxStand1.Items.Add(nameFile & "  " & Outline)
                            End If
                            If word = "ListBoxStand2" Then
                                ListBoxStand2.Items.Add(nameFile & "  " & Outline)
                            End If
                            If word = "ListBoxStand3" Then
                                ListBoxStand3.Items.Add(nameFile & "  " & Outline)
                            End If
                        End If
                        If .Depth = 6 AndAlso xmlChk = "Gesamt" AndAlso xmlGesamt > 1 Then
                            Outline = Outline & "   " & .Value
                            If word = "ListBoxStand1" Then
                                ListBoxStand1.Items.Add(nameFile & "  " & Outline)
                            End If
                            If word = "ListBoxStand2" Then
                                ListBoxStand2.Items.Add(nameFile & "  " & Outline)
                            End If
                            If word = "ListBoxStand3" Then
                                ListBoxStand3.Items.Add(nameFile & "  " & Outline)
                            End If
                        End If
                        ' Ein Kommentar 
                    Case Xml.XmlNodeType.Comment
                        Console.WriteLine("Es folgt ein Kommentar: " & .Value)
                End Select
Weiter:
            Loop  ' Weiter nach Daten schauen 
            .Close()  ' XMLTextReader schließen 
        End With

    End Sub




    Private Sub XMLReader()
        ' Wir benötigen einen XmlReader für das Auslesen der XML-Datei 
        Dim XMLReader As Xml.XmlReader _
          = New Xml.XmlTextReader("quickie.xml")
        ' Es folgt das Auslesen der XML-Datei 
        With XMLReader
            Do While .Read ' Es sind noch Daten vorhanden 
                ' Welche Art von Daten liegt an? 
                Select Case .NodeType
                    ' Ein Element 
                    Case Xml.XmlNodeType.Element
                        Console.WriteLine("Es folgt ein Element vom Typ " & .Name)
                        ' Alle Attribute (Name-Wert-Paare) abarbeiten 
                        If .AttributeCount > 0 Then
                            ' Es sind noch weitere Attribute vorhanden 
                            While .MoveToNextAttribute ' nächstes 
                                Console.WriteLine("Feldname: " & .Name &
                                " -> " &
                                "Feldwert: " & .Value)
                            End While
                        End If
                        ' Ein Text 
                    Case Xml.XmlNodeType.Text
                        Console.WriteLine("Es folgt ein Text: " & .Value)
                        ' Ein Kommentar 
                    Case Xml.XmlNodeType.Comment
                        Console.WriteLine("Es folgt ein Kommentar: " & .Value)
                End Select
            Loop  ' Weiter nach Daten schauen 
            .Close()  ' XMLTextReader schließen 
        End With
        ' Und so sieht das Ergebnis der Ausgabe aus: 
        ' ------------------------------------------ 
        'Es folgt ein Element vom Typ Personen 
        'Es folgt ein Element vom Typ Person 
        'Feldname: Titel -> Feldwert: Dr. 
        'Feldname: Name -> Feldwert: Meyer 
        'Feldname: Vorname -> Feldwert: Hans 
        'Es folgt ein Element vom Typ Person 
        'Feldname: Titel -> Feldwert: 
        'Feldname: Name -> Feldwert: Schmidt 
        'Feldname: Vorname -> Feldwert: Carlos 
    End Sub
    ' ==================================================
    ' Fortschrittsbalken
    ' ==================================================
    Sub ShowProgress(Status As Control, AktDat As Long, AnzDat As Long)
        Dim Proz As Integer
        Proz = Int((AktDat / AnzDat * 60) + 0.5)
        Select Case AktDat
            Case 15
                Item3 = ""
            Case 30
                Item3 = ""
            Case 45
                Item3 = ""
            Case 60
                Item3 = ""
            Case 75
                Item3 = ""
            Case 90
                Item3 = ""
        End Select
        If Proz  0 Then Proz = 0
        If Proz > 100 Then Proz = 100
        Dim newStruct As NewStruct = New NewStruct(item1:=Int((Val(Status.Tag) / 100 * Proz) + 0.5), item2:="J")
        Status.Text = Item3
        Label1.Refresh()
        System.Threading.Thread.Sleep(1000)
    End Sub

    Private Sub TabStand3_ClientSizeChanged(sender As Object, e As EventArgs) Handles TabStand3.ClientSizeChanged

    End Sub
End Class
Friend Structure NewStruct
    Public Item1 As Double
    Public Item2 As String

    Public Sub New(item1 As Double, item2 As String)
        Me.Item1 = item1
        Item3 = item2 + Item3
        Me.Item2 = item2 + Item3
    End Sub

    Public Overrides Function Equals(obj As Object) As Boolean
        If Not (TypeOf obj Is NewStruct) Then
            Return False
        End If

        Dim other = DirectCast(obj, NewStruct)
        Return Item1 = other.Item1 AndAlso
               Item2 = other.Item2
    End Function

    Public Overrides Function GetHashCode() As Integer
        Return (Item1, Item2).GetHashCode()
    End Function

    Public Sub Deconstruct(ByRef item1 As Double, ByRef item2 As String)
        item1 = Me.Item1
        item2 = Me.Item2
    End Sub

    Public Shared Widening Operator CType(value As NewStruct) As (Double, String)
        Return (value.Item1, value.Item2)
    End Operator

    Public Shared Widening Operator CType(value As (Double, String)) As NewStruct
        Return New NewStruct(value.Item1, value.Item2)
    End Operator
End Structure



Anzeige
AW: ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 16:04:24
Mullit
Hallo,

sag mal bist Dir sicher, daß du in VBA unterwegs bist ???, das sieht mir nach VB.NET Code aus, eine Listbox in VBA hat keine Show-Methode....

https://learn.microsoft.com/de-de/dotnet/api/system.windows.forms.listbox?view=windowsdesktop-7.0#methods
https://learn.microsoft.com/de-de/dotnet/api/system.windows.forms.control.show?view=windowsdesktop-7.0#system-windows-forms-control-show

Gruß, Mullit


Anzeige
AW: ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 16:16:52
Hans-Jürgen
Gute Güte manchmal bin ich auch ein Penner, es ist natürlich VB.NET


AW: ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 16:25:30
Mullit
....null Problemo...it happens to the best of us....;-)

Gruß, Mullit


AW: ListBoxen 2,3 OK aber 1 ohne Daten
30.04.2023 19:38:38
Hans-Jürgen
Es ist einfach, wenn man die Augen aufmacht.
Da die ListBox aber bei DrawMode auf OwnerDrawFix eingestellt ist, musst Du selbst das Zeichnen des Inhalts coden. Da Du das nicht gemacht hast, wird auch nix angezeigt. Stell es auf Normal zurück und das Ganze wird wie gewünscht gezeigt.


AW: ListBoxen 2,3 OK aber 1 ohne Daten
27.04.2023 16:21:22
Mullit
ah und ich seh grad, das hier hat's in VBA nie gegeben und wird's wohl auch nie... 100% VB.NET Code, da bist Du hier im falschen Forum, falls nich zufällig ein NET Experte vorbeiguckt...;-)
Friend Structure NewStruct
    Public Item1 As Double
    Public Item2 As String

    Public Sub New(item1 As Double, item2 As String)
        Me.Item1 = item1
        Item3 = item2 + Item3
        Me.Item2 = item2 + Item3
    End Sub

    Public Overrides Function Equals(obj As Object) As Boolean
        If Not (TypeOf obj Is NewStruct) Then
            Return False
        End If

        Dim other = DirectCast(obj, NewStruct)
        Return Item1 = other.Item1 AndAlso
               Item2 = other.Item2
    End Function

    Public Overrides Function GetHashCode() As Integer
        Return (Item1, Item2).GetHashCode()
    End Function

    Public Sub Deconstruct(ByRef item1 As Double, ByRef item2 As String)
        item1 = Me.Item1
        item2 = Me.Item2
    End Sub

    Public Shared Widening Operator CType(value As NewStruct) As (Double, String)
        Return (value.Item1, value.Item2)
    End Operator

    Public Shared Widening Operator CType(value As (Double, String)) As NewStruct
        Return New NewStruct(value.Item1, value.Item2)
    End Operator
End Structure
Gruß, Mullit

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige