Autore Topic: estendere il like a tutto l'unicode  (Letto 1778 volte)

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #15 il: 21 Maggio 2013, 19:40:25 »
si ma non capisco il collegamento con il like...
;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #16 il: 21 Maggio 2013, 19:50:43 »
si ma non capisco il collegamento con il like...
...questa tua discussione è un mistero assoluto.  ;D


Ad ogni modo, se elimino tutte le righe dell'intero condizionale IF (anche quelle interne):
Codice: gambas [Seleziona]

Public Sub Form_KeyPress()  
  
     Print "verifica"

End

ovviamente ad ogni tasto premuto viene stampata in console la stringa stabilita.
« Ultima modifica: 21 Maggio 2013, 20:00:49 da vuott »
« 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 simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #17 il: 21 Maggio 2013, 19:56:59 »
nooooooo veramente :o
 :rotfl: :rotfl:

ci capirò qualcosa prima o poi :-\
;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #18 il: 21 Maggio 2013, 20:24:45 »
..... qualunque riga di comando posta all'interno della verifica condizionale dell'IF mi viene eseguita, se premo un qualunque tasto sulla tastiera, anche combinato, ad eccezione dei numeri, della virgola, del punto, del meno e dei caratteri: è, é, à, °, ù, §, ò, ç, ì.

Ora mi domando  :rolleyes: come mai vengono assimilati quei simboli  (è, é, à, °, ù, §, ò, ç, ì) ai caratteri posti nel pattern di Like del tuo esempio. Infatti, come ho già detto, cliccando su un tasto che li rappresenta, la riga di codice condizionta dalla verifica dell'IF, non viene eseguita.... nonostante quei caratteri non siano ricompresi nel pattern.  :-\
« 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 simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #19 il: 21 Maggio 2013, 21:27:05 »
semplicemente perchè il like rifiuta totalmente tutti gli altri caratteri dell'unicode
 :hatecomputer:
mi sono letto tutta la documentazione sul componente Regexp (gb.pcre) e non ci ho capito niente
però ho letto
Citazione
PCRE Sintassi [...]
CLASSI - corrispondenti a un intervallo o un insieme di caratteri. Ad esempio, "[abc]" sarebbe partita sia a, b o c.[...]
[^ ...] Carattere negativo
[...]
e sarebbe proprio quello che fa al caso mio, ma non dice come usarlo: cosa mettere al posto del like...
;D

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #20 il: 21 Maggio 2013, 21:39:12 »
in alternativa qualcosa che controlla se è un ASCII oppure appartiene ad un altro set...
qualcosa tipo
Codice: gambas [Seleziona]

If not  isascii(key.Text) Then 
 Stop Event   
Endif 


però cosi dovrei tralasciare alcuni caratteri, tipo le freccie etc...
« Ultima modifica: 22 Maggio 2013, 15:23:04 da simo97 »
;D

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #21 il: 21 Maggio 2013, 23:09:52 »
in alternativa qualcosa che controlla se è un ASCII oppure appartiene ad un altro set...

Io mi ripeto dicendo che controllare se e' un numero e' piu' semplice che controllare tutto quello che non dovrebbe essere.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #22 il: 22 Maggio 2013, 00:59:34 »
in alternativa qualcosa che controlla se è un ASCII oppure appartiene ad un altro set...

però cosi dovrei tralasciare alcuni caratteri, tipo le freccie etc...

Rileggendo un po' tutta la discussione sono scoppiato a ridere  :rotfl: ......perché non ho capito bene ancora con precisione cosa vuoi !   :rotfl: :rotfl:

    :'(

Voglio tenere come base il mio esempio di prima, ossia questo:
Codice: gambas [Seleziona]

Public Sub Form_KeyPress()

   If ............. Then
      Print "Scrivo in console"
   Endif

End



Dunque:
* se vuoi che premendo un numero non venga eseguita l'istruzione all'interno dell'IF, allora va bene il suggerimento di pastrank (ovviamente la soluzione pastrankiana può essere utilizzata - in modo diverso - anche se vuoi che l'istruzione venga eseguita, poiché la funzione IsNumber è comunque relativa ai numeri);

* se vuoi che venga eseguita l'istruzione all'interno dell'IF, soltanto se si preme un tasto avente come simbolo una lettera dell'alfabeto, anche se accentata (quindi niente numeri ed altri simboli), allora puoi fare così:
Codice: gambas [Seleziona]

Public Sub Form_KeyPress()

' In questo caso usiamo il "Select Case":
  Select Case key.Text
    Case "A" To "Z", "a" To "z", "ì", "è", "é", "ò", "à", "ù"
      Print "Scrivo in console"
  End Select

End
« Ultima modifica: 22 Maggio 2013, 13:45:03 da vuott »
« 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 simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #23 il: 22 Maggio 2013, 15:22:12 »
l'obbiettivo era e è ancora di essrere sicuro che non vengano inseriti altri caratteri oltre a quelli del like

ora, il like mi gestisce l'acii e fin qui funziona

il not isascii(...) mi gestisce il resto e va bene...
;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #24 il: 22 Maggio 2013, 16:33:56 »
ora, il like mi gestisce l'acii e fin qui funziona

il not isascii(...) mi gestisce il resto e va bene...

...sembrerebbe quindi essere risolto !  :-\
« 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 simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #25 il: 22 Maggio 2013, 16:45:44 »
si il risultato è stato trovato con questa....
Codice: gambas [Seleziona]
'' **filtro caratteri***
'' ***
'' da inserire in un keypress
'' ***
'' **ARGOMENTI:**
'' - stringa: il testo della text box da controllare
'' da inserire!!
Public Function Filtro(stringa As String)  
 If key.Text Like "[^0-9.,-]" Then
   Stop Event
 Endif
If Key.Text = "." Then
  If ricerca(stringa, ".") = 1 Then
    Stop Event
  Endif
Endif
If Key.Text = "-" Then
  If ricerca(stringa, "-") = 1 Then
    Stop Event
  Endif
Endif
If Key.Text = "," Then
  If ricerca(stringa, ".") = 1 Then
    Stop Event
  Endif
Endif
If Not IsAscii(Key.Text) Then
  Select Case Key.Text
    Case Not ""
    Stop Event
  End Select
Endif
End


 :danger: ma  :danger:
ancora non ho capito come estendere il like
gambas lo permette ma non riesco a capire come

diciamo che è risolto a metà
 :ciao:
;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #26 il: 23 Maggio 2013, 16:58:15 »
come posso usare le informazioni contenute qui??
Citazione
Attenzione! LIKE si occupa come solo dei caratteri ASCII. Per ricercare stringhe con il set di caratteri UTF-8, Usare la gb.pcre componenti.

Prova ad attivare innanzitutto il componente in questione: gb.pcre .
Poi, potresti studiarne classi, funzioni e proprietà magari iniziando così:    :-\
Codice: gambas [Seleziona]

Private p As New Regexp


Public Sub Form_Open()

   With p
' qui richiami le risorse della classe ponendo un punto, come di consueto...
   End With

End

:-X
« 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 simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: estendere il like a tutto l'unicode
« Risposta #27 il: 23 Maggio 2013, 19:28:06 »
io avevo letto tutta la documentazione
farò gli esperimenti :ok:
;D