Ciao a tutti, ho riscontrato un problema con l'esecuzione di un programma in cui devo inserire in input una stringa contenente dei numeri, separati da un punto e virgola, e devo individuare e mandare in output solo il maggiore.
Non riesco a capire dove sia l'errore perchè mi dice che massimo è pari a 0, qualcuno può aiutarmi?
Dim stringa As String
Dim calc_massimo As Double
Dim max, min As String
max = ""
stringa = TB_stringa.Text
If stringa >= "A" And stringa <= "Z" Or stringa >= "a" And stringa <= "z" Then
MsgBox("la stringa non contiene solo numeri") : Exit Sub
End If
calc_massimo = Calcola_Massimo(stringa, max)
Call Ris( calc_massimo)
End Sub
Private Sub Ris(ByVal calc_massimo As Double)
MsgBox("il numero maggiore è: " & calc_massimo)
End Sub
Private Function Calcola_Massimo(ByVal max As String, ByVal stringa As String) As String
Dim car, num As String
Dim n As Double
Dim massimo As Double
Dim conta As Integer
num = 0
For i = 1 To Len(stringa)
car = Mid(stringa, i, 1)
If IsNumeric(car) Then
num &= car
End If
If car = ";" Or car = "" Or i = Len(stringa) Then
n = CDbl(car)
num = ""
conta += 1
If conta = 1 Then
max = n
End If
If n > max Then
massimo = n
Else
massimo = max
End If
End If
Next
Return massimo
End Function
End Class