Autore Topic: maschera binaria per stringa  (Letto 807 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
maschera binaria per stringa
« il: 23 Ottobre 2017, 18:52:02 »
stringa completa: "DLMMGVSD"

Codice: [Seleziona]
Dim GiorniSettimana As String = "DLMMGVSD"

stringa di confronto: "0101010":

Codice: [Seleziona]
Settimana = Format(Bin(Ritorno), "0000000")

dove:

Codice: [Seleziona]
 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?
« Ultima modifica: 23 Ottobre 2017, 19:18:20 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #1 il: 23 Ottobre 2017, 21:16:09 »
Per ora sono riuscito solo a fare questo:    :-\

Codice: [Seleziona]
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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #2 il: 23 Ottobre 2017, 22:37:30 »
oppure così
Codice: [Seleziona]
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:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #3 il: 23 Ottobre 2017, 22:58:36 »
..eh... però con l' IF è troppo facile....
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #4 il: 23 Ottobre 2017, 23:02:59 »
..eh... però con l' IF è troppo facile....

 :P  :D 

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #5 il: 24 Ottobre 2017, 13:18:00 »
eleganti come sempre.

questa era la mia brutale funzione:

Codice: [Seleziona]
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
« Ultima modifica: 24 Ottobre 2017, 13:24:49 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #6 il: 24 Ottobre 2017, 13:48:14 »
...
ma mi piace piu' la vostra :D
Fai bene a essere diplomatico per non offendere Vuott  ;D  :rotfl:
Citazione
PS: c'e' una D di troppo :D
Una settimana con due domeniche non sarebbe male  :D

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #7 il: 24 Ottobre 2017, 16:30:37 »
Citazione
Una settimana con due domeniche non sarebbe male  :D
Propongo un referendum!   ...adesso vanno di moda... :P
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #8 il: 24 Ottobre 2017, 16:37:51 »
Citazione
Una settimana con due domeniche non sarebbe male  :D
Propongo un referendum!   ...adesso vanno di moda... :P

Cioè solo in Veneto e Lombardia  ???
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.727
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #9 il: 24 Ottobre 2017, 18:37:09 »
 :D
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #10 il: 24 Ottobre 2017, 23:26:06 »
Cioè solo in Veneto e Lombardia  ???

" Volete voi che l'antica e potentissima Repubblica di Genova sia ricostituita nel consesso delle Nazioni ? "
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #11 il: 25 Ottobre 2017, 11:05:48 »
Cioè solo in Veneto e Lombardia  ???

" Volete voi che l'antica e potentissima Repubblica di Genova sia ricostituita nel consesso delle Nazioni ? "

 :D Noi ci scherziamo, ma c'è in giro un'aria così strana... vogliamo davvero ritornare ai tempi di una guerra ogni 5 anni e scaramucce tutti i giorni?  >:( :evil:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #12 il: 25 Ottobre 2017, 12:34:54 »
ma c'è in giro un'aria così strana...

W San Giovanni !!!

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #13 il: 25 Ottobre 2017, 15:29:05 »
 :D
Per quanto riguarda il patrono di Genova, rimando a questo breve approfondimento

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:maschera binaria per stringa
« Risposta #14 il: 25 Ottobre 2017, 16:06:00 »

.......W pure San Zorzo !!!
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »