|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Registered User
Iscritto dal: Mar 2011
Messaggi: 72
|
[RISOLTO][VB.NET] Ciclo For blocca il programma
Salve a tutti!
Sto realizzando un semplice software che si occupa di masterizzare file e cartelle su cd/dvd. Ho problemi con il processo che si occupa di calcolare la dimensione di dati da masterizzare, ovvero: Codice:
Public Sub CalculateDataSize()
'
' Calculate the size of the files
'
Dim totalMediaSize As Long = 0
Dim mediaItem As iMediaItem
For Each mediaItem In listBoxFiles.Items
totalMediaSize += mediaItem.SizeOnDisc
Next
'Dim Dimension As Integer = CInt((totalMediaSize * 100) / _totalDiscSize)
Dim Dimension As Integer = CInt(_totalDiscSize - totalMediaSize)
Select Case Dimension
Case Is <= 600
lbl_necessary_disk.Text = "1 CD"
Case Is <= 1200 And Dimension > 600
lbl_necessary_disk.Text = "2 CD o 1 DVD"
Case Is <= 2048 And Dimension > 1200
lbl_necessary_disk.Text = "4 CD o 1 DVD"
Case Is <= 4096 And Dimension > 2048
lbl_necessary_disk.Text = "1 DVD"
End Select
If Dimension < 0 Then
MsgBox("Spazio insuffieciente")
End If
End Sub
Qualche idea su come risolvere? Grazie in anticipo! Ultima modifica di Popo95 : 13-03-2015 alle 11:08. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2004
Messaggi: 278
|
Ciao, hai provato a vedere se viene sollevata qualche eccezione?
Codice:
...
Try
For Each mediaItem In listBoxFiles.Items
totalMediaSize += mediaItem.SizeOnDisc
Next
Catch ex As Exception
MsgBox(ex.ToString())
End Try
...
__________________
PROCESSORE: AMD Athlon64 2800+ Boxed - MOTHERBOARD: Gigabyte K8NS nForce3 250 - SCHEDA VIDEO: 3D Prophet 9800 Pro 128MB - RAM: 512MB Corsair Value + 512 V-Data - CASE: Chieftech Dragon - ALIMENTATORE: Q-TEC 550W - HARD DISK: Seagate SATA 80 GB - LETTORE DVD: LG 16x52x - MASTERIZZATORE: Nec ND-3520 |
|
|
|
|
|
#3 |
|
Registered User
Iscritto dal: Mar 2011
Messaggi: 72
|
Ok, grazie Ballantine ho provato ed effettivamente viene fuori un'eccezione. A quanto pare il ciclo si ripete in continuazione anche se non c'è più alcun "mediaItem" in "listboxfiles.Items", quindi nel momento in cui viene generata l'eccezione mi sono accordo che a "mediaItem"viene assegnato "Nothing".
Ho risolto imponendo al ciclo di uscire al verificarsi del problema, in questo modo: Codice:
For Each mediaItem In listBoxFiles.Items
If mediaItem Is Nothing Then
Exit For
End If
totalMediaSize += mediaItem.SizeOnDisc
Next
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:25.



















