'Programma by Piero Tofy 2003
Public Sub controlla_separatore(inputx As String, outputx As Control)
'Controlla che il separatore decimale sia una virgola o un punto...
Dim tiposeparatore As String
Dim lenstring As Single
Dim count As Single
Dim charx As String
tiposeparatore = Mid(CStr(5 / 2), 2, 1)
lenstring = Len(inputx)
'Controlla se ci sono separatori e li corregge
For count = 1 To lenstring
charx = Mid(inputx, count, 1)
If charx = "." Or charx = "," Then
Mid(inputx, count) = tiposeparatore
End If
Next count
outputx = inputx
End Sub
Public Sub calcola_tempo(dimensioni As Single, velocita As Single, outputx As Control)
'Calcola il tempo di scaricamento del file in base ai dati forniti
'Trasforma i Mb in Kb
Dim kb As Single
kb = dimensioni * 1000
'Calcola i secondi totali
Dim secondi As Single
secondi = kb / velocita
'Rimanda il risultato della funzione all'output
outputx = dividi_secondi(secondi)
End Sub
Public Function dividi_secondi(secondi As Single)
'Trasforma i secondi in ore e minuti
Dim ore As Single
Dim minuti As Single
Dim count As Single
'Toglie i decimali dai secondi totali (se ci sono...)
Dim pos_separatore As Single
Dim tiposeparatore As String
tiposeparatore = Mid(CStr(5 / 2), 2, 1)
ore = 0
tempox = secondi / 60
pos_separatore = InStr(CStr(tempox), tiposeparatore)
If pos_separatore <> 0 Then tempox = Left(tempox, pos_separatore)
'Crea la stringa per l'output
Do
ore = ore + 1
count = ore * 60
Loop Until count > tempox
ore = ore - 1
minuti = tempox - (ore * 60)
'Manda l'output alla chiamata
If ore = 0 And minuti = 0 Then
dividi_secondi = "Meno di un minuto"
ElseIf ore = 0 Then
dividi_secondi = minuti & " minuti"
ElseIf minuti = 0 Then
dividi_secondi = ore & " ore"
Else
dividi_secondi = ore & " Ore e " & minuti & " Minuti"
End If
End Function
Private Sub cmdok_Click()
On Error GoTo 1
Call controlla_separatore(txtmb, txtmb)
Call controlla_separatore(txtvel, txtvel)
Call calcola_tempo(txtmb.Text, txtvel.Text, txttime)
Exit Sub
1
MsgBox "E' avvenuto un errore! Controlla che i dati inseriti siano corretti. Se il problema non si risolve contatta il produttore!", vbCritical, "Errore: " & Err.Description
Exit Sub
End Sub