| 

.NET C# Java Javascript Exception

2
Hallo habe ein Fehlerbehandungsproblem... Listbox = "" / Nothing

Code:
#####################################
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

'######################### getestet 16.06.2019 TM OK Fehlerbehandlung NOT OK
Dim FileToCopy As String
Dim NewCopy As String
Dim fullPath As String
Dim fullPath2 As String

If ListBox1.Items.Count = 0 Then
MessageBox.Show(Me, "Füge erst ein SQL File hinzu!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
Exit Sub
End If

Dim curItem = ListBox1.SelectedItem.ToString() '#### Wenn nicht markiert bzw. selected dann Fehlermeldung ausgeben 16.06.2019 TM ### HIER ist ein Problem...

Dim CurItem2 = "emc"
Dim xFilesTransferred As Integer = 0




' --> am besten immer hier ablegen die Backups --> C:\Users\Public\Downloads\SQL BAK <-- wegen Read/write rights
fullPath = My.Computer.FileSystem.CombinePath("C:\Users\Anwender\Downloads\SQL BAK\", curItem)
fullPath2 = My.Computer.FileSystem.CombinePath("C:\Users\Anwender\Downloads\SQL BAK\", CurItem2)

FileToCopy = fullPath ' "C:\Users\Owner\Documents\test.txt"
NewCopy = fullPath2 ' "C:\Users\Owner\Documents\NewTest.txt"

Dim xFilesCount(NewCopy.Length) ' Length 39 !!! aber wird nicht in xFilesCount übergeben ???

If System.IO.File.Exists(fullPath2) = True Then
MessageBox.Show("File Found", "Kopiervorgang:")
ElseIf IO.File.Exists(FileToCopy) = True Then
MessageBox.Show("File not found.", "Kopiervorgang:")
System.IO.File.Copy(FileToCopy, NewCopy) 'NewCopy
ProgressBar1.Value = ProgressBar1.Maximum = FileToCopy.Length
ProgressBar1.Value = ProgressBar1.Maximum
MessageBox.Show("File Copy", "Kopiervorgang:")
ProgressBar1.Value = 0
ProgressBar1.Refresh()

End If

End Sub

#####################################

Danke TM
News:
16.06.2019
tsmeier 51 1 3
3 Antworten
0
2. Fehlerbehandlung eingebaut - geht trotzdem nicht...

Code
#######################################
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

'######################### getestet 16.06.2019 TM OK Fehlerbehandlung NOT OK
Dim FileToCopy As String
Dim NewCopy As String
Dim fullPath As String
Dim fullPath2 As String

' 1. Fehlerbehandlung 16.06.2019 OK
If ListBox1.Items.Count = 0 Then
MessageBox.Show(Me, "Füge erst ein SQL File hinzu!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If




'2. Fehlerbehandlung .... curItem ??????
'If curItem Is ("Fehler") Then
If IsNothing(ListBox1.Text = "") Then
MessageBox.Show(Me, "Füge erst das File hinzu!", "NULL", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
Button1_Click(Me.Button1, EventArgs.Empty) 'MessageBox.Show(Me, "Füge erst ein SQL File hinzu!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)
Stop
End If

Dim curItem = ListBox1.SelectedItem.ToString() '#### Wenn nicht markiert bzw. selected dann Fehlermeldung ausgeben 16.06.2019 TM ### HIER ist ein Problem...




Dim CurItem2 = "emc"
Dim xFilesTransferred As Integer = 0




' --> am besten immer hier ablegen die Backups --> C:\Users\Public\Downloads\SQL BAK <-- wegen Read/write rights
fullPath = My.Computer.FileSystem.CombinePath("C:\Users\Anwender\Downloads\SQL BAK\", curItem)
fullPath2 = My.Computer.FileSystem.CombinePath("C:\Users\Anwender\Downloads\SQL BAK\", CurItem2)

FileToCopy = fullPath ' "C:\Users\Owner\Documents\test.txt"
NewCopy = fullPath2 ' "C:\Users\Owner\Documents\NewTest.txt"

Dim xFilesCount(NewCopy.Length) ' Length 39 !!! aber wird nicht in xFilesCount übergeben ???

If System.IO.File.Exists(fullPath2) = True Then
MessageBox.Show("File Found", "Kopiervorgang:")
ElseIf IO.File.Exists(FileToCopy) = True Then
MessageBox.Show("File not found.", "Kopiervorgang:")
System.IO.File.Copy(FileToCopy, NewCopy) 'NewCopy
ProgressBar1.Value = ProgressBar1.Maximum = FileToCopy.Length
ProgressBar1.Value = ProgressBar1.Maximum
MessageBox.Show("File Copy", "Kopiervorgang:")
ProgressBar1.Value = 0
ProgressBar1.Refresh()

End If

End Sub
#######################################

Gruss TM
16.06.2019
tsmeier 51 1 3
0
Ich vermute 'mal, dass es sich um die Listbox-Klasse von Windows.Form handelt.
Was genau soll die Listbox denn verwalten? - Wenn es Dateien sein sollen - wäre es dann nicht besser, die Klasse FileListbox zu verwenden?

Nun zur Fehlerbehandlung: Ich verstehe das Ganze so, dass ausgeschlossen werden soll, dass die Listbox leer ist. Hier sollte Listbox.Items.Count (wie geschehen) abgefragt werden.
Wenn zusätzlich geprüft werden soll, ab ein Eintrag selektiert wurde, sollte eine Abfrage ala:
If Not (Listbox.SelectedItem Is Nothing) Then

genügen. Diese Abfrage gibt ein Objekt zurück, das u.U. geeignet gecastet werden muss!
Ansonsten kann auch Listbox.SelectedIndex verwendet werden. -1 zeigt an, dass nicht gewählt wurde.
17.06.2019
edvservice 1,4k 1 6
0
Kopierumwandlungsprogramm:

Ok sollte so funktionieren

Code:
############################
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

'######################### getestet 16.06.2019 TM OK Fehlerbehandlung NOT OK
Dim FileToCopy As String
Dim NewCopy As String
Dim fullPath As String
Dim fullPath2 As String
Dim curItem = ListBox1.SelectedItem '.ToString() '#### Wenn nicht markiert bzw. selected dann Fehlermeldung ausgeben 16.06.2019 TM ### HIER ist ein Problem...

' 1. Fehlerbehandlung 16.06.2019 OK
If ListBox1.SelectedIndex = -1 Then 'ListBox1.Items.Count = 0 Then
MessageBox.Show(Me, "Füge erst ein SQL File hinzu!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

'If Not (ListBox1.SelectedItem Is Nothing) Then
'MessageBox.Show(Me, "Füge erst ein SQL File hinzu!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'End If

'2. Fehlerbehandlung .... curItem ??????
'If curItem Is ("Fehler") Then
'If IsNothing(ListBox1.Text = "") Then
'MessageBox.Show(Me, "Füge erst das File hinzu!", "NULL", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Else
'Button1_Click(Me.Button1, EventArgs.Empty) 'MessageBox.Show(Me, "Füge erst ein SQL File hinzu!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'ListBox1.Refresh()
'End If

Dim CurItem2 = "emc"
Dim xFilesTransferred As Integer = 0

' --> am besten immer hier ablegen die Backups --> C:\Users\Public\Downloads\SQL BAK <-- wegen Read/write rights
fullPath = My.Computer.FileSystem.CombinePath("C:\Users\Anwender\Downloads\SQL BAK\", curItem)
fullPath2 = My.Computer.FileSystem.CombinePath("C:\Users\Anwender\Downloads\SQL BAK\", CurItem2)

FileToCopy = fullPath ' "C:\Users\Owner\Documents\test.txt"
NewCopy = fullPath2 ' "C:\Users\Owner\Documents\NewTest.txt"

Dim xFilesCount(NewCopy.Length) ' Length 39 !!! aber wird nicht in xFilesCount übergeben ???

If System.IO.File.Exists(fullPath2) = True Then
MessageBox.Show("File Vorhanden - Abgebrochen", "Kopiervorgang:")
ElseIf IO.File.Exists(FileToCopy) = True Then
MessageBox.Show("File wird Kopiert.", "Kopiervorgang:")
System.IO.File.Copy(FileToCopy, NewCopy) 'NewCopy
ProgressBar1.Value = ProgressBar1.Maximum = FileToCopy.Length
ProgressBar1.Value = ProgressBar1.Maximum
MessageBox.Show("File Kopiert", "Kopiervorgang:")
ProgressBar1.Value = 0
ProgressBar1.Refresh()

End If

End Sub
############################

Gruss TM
18.06.2019
tsmeier 51 1 3

Stelle deine Listbox-Frage jetzt!