Propongo una cosa così:
Private Function gbProperCase(value As String) As String
Dim ss As String[] = Split(value, " ")
value = ""
For Each s As String In ss
value &= String.UCaseFirst(s) & " "
Next
Return RTrim(value)
End
...oppure questa ipotesi:
Public Sub Form_Open()
Dim bb As Byte[]
Dim i As Integer
bb = Byte[].FromString("via romano romani 46")
For i = 0 To bb.Max - 1
If bb[i + 1] \ bb[i] = 3 Then bb[i + 1] = bb[i + 1] - 32
Next
Print bb.ToString(0, bb.Count)
End
stavo congetturando di usare mid
Una prima ipotesi con uso di Mid( ) potrebbe essere questa:
Public Sub Main()
Dim s As String
Dim i As Integer
s = "via romano romani 46"
For i = 1 To Len(s)
If IsSpace(Mid(s, i, 1)) Then Mid(s, i + 1, 1) = String.UCaseFirst(Mid(s, i + 1, 1))
Next
Print s
End
ma fa schifo pure a me: tendenzialmente odio le funzioni stringa.
usare mid e un vettore
Non capisco in che modo farli dialogare proficuamente...