stringa completa: "DLMMGVSD"
Dim GiorniSettimana As String = "DLMMGVSD"
stringa di confronto: "0101010":
Settimana = Format(Bin(Ritorno), "0000000")
dove:
Public Sub Button_OK_Click()
Dim Valore As Integer
Dim I As Integer
For i = 0 To ValiditaGiornaliera.Count - 1
If ValiditaGiornaliera[i].Value = True Then
valore = valore + 2 ^ (6 - i)
Endif
Next
Form_InputGiorniSettimana.Close(valore)
End
vorrei ottenere: "_L_M_V_D"
ovvero rimpiazzare nella stringa "DLMMGVSD" un underscore solo se nella stringa di controllo ("0101010") e' presente uno 0.
idee geniali?
Per ora sono riuscito solo a fare questo: :-\
Private Const GiorniSettimana As String = "DLMMGVSD"
Public Sub Main()
Dim maschera As String = "00010111"
Dim b As Byte
For b = 1 To Len(GiorniSettimana)
Print Replace(Chr(Asc(GiorniSettimana, b) And ((Asc(maschera, b) - 48) * &FF)), "\0", "_");
Next
End
oppure così
Public Sub Main()
Dim GiorniSettimana As String = "DLMMGVSD"
Dim Settimana As String = "0101010"
Dim n As Byte
For n = 1 To Len(GiorniSettimana)
If Mid(Settimana, n, 1) = 0 Then Mid(GiorniSettimana, n, 1) = "_"
Next
Print GiorniSettimana
End
:ciao: :ciao:
eleganti come sempre.
questa era la mia brutale funzione:
Public Sub settimana(validita As String) As String
Dim I As Integer
Dim Giorni As String = "DLMMGVS"
Dim appoggio As String
For i = 1 To 7
If Mid(validita, i, 1) = "1" Then
appoggio = appoggio & Mid(Giorni, i, 1)
Else
appoggio = appoggio & "_"
Endif
Next
Return appoggio
End
ma mi piace piu' la vostra :D
PS: c'e' una D di troppo :D