Autore Topic: [risolto[...]]esiste una funzione che cerca un crt all'interno di una stringa  (Letto 5126 volte)

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
ho trovato qualcosa ma mi danno la posizione mente a me servirebbe qualcosa di boolean..

tipo vogli sapere se in -stringa- è presente la lettera "a"
se è presente true
se non è presente false

esiste o me la creo...
« Ultima modifica: 03 Maggio 2013, 16:36:32 da simo97 »
;D

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #1 il: 01 Maggio 2013, 18:51:06 »
Instr() ?


If Instr("Ciccio","u") Then
  Print "C'e'"
Else
  Print "Non c'e'"
EndIf

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #2 il: 01 Maggio 2013, 18:54:55 »
...oppure anche così:    :-X
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Dim b As Boolean
 
    b = CBool(InStr("alibaba", "i"))
 
' Vedo in console il risultato booleano:
    Print b

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 simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #3 il: 01 Maggio 2013, 19:09:41 »
ok ma non restituisce la posizione della prima "occorrenza"..

è in un change...
dovrebbe servire per var inserire il puntino una volta sola..
Codice: gambas [Seleziona]

 If (InStr(stringa, ".") ) And (Len(stringa) > 1) Then
              lettera = "."
            Else
              lettera = ""
            Endif


non va....
« Ultima modifica: 01 Maggio 2013, 19:13:13 da simo97 »
;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #4 il: 01 Maggio 2013, 19:11:37 »

non va....

Non va cosa con precisione ?....   ???
« 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: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #5 il: 01 Maggio 2013, 19:14:15 »
lo fa inserire più di una volta...(la lettera..)
;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #6 il: 01 Maggio 2013, 19:18:07 »
lo fa inserire più di una volta...(la lettera..)

Perdonami, non capisco.

"Lo fa"... chi ?

Puoi essere più dettagliato e preciso ?


Ad ogni modo a me il tuo codice, posto all'interno di una  semplice Form_Open() funziona:   :-\
Codice: gambas [Seleziona]

Public Sub Form_Open()

  Dim stringa As String = "ali.baba"
  Dim lettera As String
 

   If (InStr(stringa, ".")) And (Len(stringa) > 1) Then 
             lettera = "." 
           Else 
             lettera = "" 
           Endif

   Print lettera

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 pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #7 il: 01 Maggio 2013, 19:19:47 »
lo fa inserire più di una volta...(la lettera..)

Se questo riguarda il controllo di cosa scrivi nel formulinux, considera anche di non farlo inserire nel textbox ma in masked edit, di evitare che si possa scrivere 1.1.1 controllando con la funzione Like, e di usare anche isnumber() per controllare alla fine il tutto: non a caso, dicevo che la storia era lunga!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #8 il: 01 Maggio 2013, 19:21:55 »
Se questo riguarda il controllo di cosa scrivi nel formulinux, ......... non a caso, dicevo che la storia era lunga!

Ahhh, ma allora la questione è all'interno di una struttura codice ben più complessa !
« 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 milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #9 il: 01 Maggio 2013, 19:22:12 »
ho trovato qualcosa ma mi danno la posizione mente a me servirebbe qualcosa di boolean..

....

ok ma non restituisce la posizione della prima "occorrenza"..

è in un change...
dovrebbe servire per var inserire il puntino una volta sola..


 ???

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #10 il: 01 Maggio 2013, 19:27:21 »
infatti servia proprio a quello...

allora spiego

ho la funzione
Codice: gambas [Seleziona]
Public Function controllo(stringa As String) As String 
  
  Dim lettera As String
  
  lettera = Right(stringa, 1)
  
  If lettera <> "" Then
      Select Case lettera
      
          Case "0" To "9"
              lettera = lettera
          Case ","
            If InStr(stringa, ",") = 1 And Len(stringa) > 1 Then
              lettera = "."
            Else
              lettera = ""
            Endif
          Case "."
            If (InStr(stringa, ".")) And (Len(stringa) > 1) Then
              lettera = "."
            Else
              lettera = ""
            Endif
          Case "-"
            If (Left(stringa, 1) = "-") And (Len(stringa) > 1) Then ''ricontrollare
              lettera = ""
            Else
            lettera = "-"
            Endif
          Case Else
              lettera = ""
      End Select
  
  stringa = Left(stringa, Len(stringa) - 1) & lettera
  
  Endif
  Return stringa
  
End


che uso
Codice: gambas [Seleziona]

public sub text_change
text.text=controllo(text.text)
end

(credo che l'abbia scritta vuott..)

doveva servire a confermare che il testo inserito nella text sia veramente un float...
però la funzione non è completa...
« Ultima modifica: 01 Maggio 2013, 19:29:53 da simo97 »
;D

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #11 il: 01 Maggio 2013, 19:28:25 »
Se questo riguarda il controllo di cosa scrivi nel formulinux, ......... non a caso, dicevo che la storia era lunga!

Ahhh, ma allora la questione è all'interno di una struttura codice ben più complessa !

è sempre in qualcosa di più complesso ;D ;D ;D
;D

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #12 il: 01 Maggio 2013, 19:44:30 »
Puoi spiegare a cosa ti serve questo controllo?

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #13 il: 01 Maggio 2013, 19:52:08 »
lavorando solo con i numeri
doveva servire a limitare l'accesso alle text ai soli numeri e di non permettere di inserire più di un puntino/meno, in quel caso non sarebbe un numero e derebbe errore...

è difficile da spiegare...
forse così va meglio
con formulinux avevo inserito la funzione -controllo-
però non è completa perche ti permette di fare una cosa del genere 1.2.5 oppure 6-9.6.3 e si riuscirebbe anche a fare fg20 scrivendo prima il 20....
ora io dovrei completare la funzione...
;D

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: esiste una funzione che cerca una lettera all'interno di una stringa
« Risposta #14 il: 01 Maggio 2013, 20:00:04 »
lavorando solo con i numeri

Aspetta (e ricorda che di solito faccio tutt'altre cose, quindi non sono abituato). Intanto guarda qui, ci ho ripensato adesso:
http://gambasdoc.org/help/comp/gb.form/valuebox?show&v3

Poi i controlli li farai in una funzione successiva, per tutte le procedure, magari
« Ultima modifica: 01 Maggio 2013, 20:01:36 da pastrano »