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

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
come si fa a escluderli??

Per escluderli e' facile, ti basta memorizzare il valore originale della textbox da qualche parte, tipo variabili o la tag del controllo,  e poi, nell'evento change(), controllare il testo con isnumber(), aggiungendo uno 0 alla fine nel caso ci sia un solo carattere e sia un meno.

Codice: [Seleziona]
If IsNumber(TextBox1.text & "0") = False Then
   'oppure if latuafunzione(textbox1.text) = false then
   TextBox1.text = textbox1.tag
Endif
textbox1.tag = TextBox1.text 
 

Occhio che l'ho scritto senza provarlo. E attento comunque a tutte le implicazioni, tieni conto che le calcolatrici di solito usano il punto come separatore, il formato italiano la virgola, quello inglese il punto, ma vorrai pure copiarli i risultati, e se usi il punto sul programma su di un sistema italiano, copi il risultato, lo incolli su uno spreadsheet e viene visto come stringa, ti stressi la vita.

Ed e' per quello che prima di aggiungere funzionalita' e parlare di versioni dovevi fare una cosa, controllarla bene e poi potevi andare sicuro, ora devi cambiarne un sacco  :rolleyes:

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
nooo scherzi :rotfl:
cambire non tanto...
dopo tutti i controlli vuoi che non sia un numero....

il fatto della virgola è un problema solo se viene inserita dopo (cioè scrivo "544555" poi ci metto la virgola "5,44555") senno ho già una funzione che la converte....

Citazione
Per escluderli e' facile, ti basta memorizzare il valore originale della textbox da qualche parte, tipo variabili o la tag del controllo,  e poi, nell'evento change(), controllare il testo con isnumber(), aggiungendo uno 0 alla fine nel caso ci sia un solo carattere e sia un meno.

Codice:
If IsNumber(TextBox1.text & "0") = False Then
   'oppure if latuafunzione(textbox1.text) = false then
   TextBox1.text = textbox1.tag
Endif
textbox1.tag = TextBox1.text

non ciò capito molto.....ora vedo

 :2birre:-----------ho inserito sia pastrank che Picavbg tra i collaboratori di formulinux------------- :2birre:
;D

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
nooo scherzi :rotfl:
cambire non tanto...
dopo tutti i controlli vuoi che non sia un numero....

Non si sa mai, hai provato a copiarci lettere, numeri, frasi, libri? Ogni calcolo rifatto sugli estremi se ci sono limiti, etc etc? Non e' semplice semplice, per quello ti avvisavo: per dire, sai perche' avevo messo quel pezzetto di riga
Codice: [Seleziona]
if isnumber(TextBox1.text & "0") then
perche' se no isnumber() se inizi a scrivere "-" ti darebbe false.

La prima cosa, quando devi inserire dei dati, e' sempre fare in modo che siano in un formato di ingresso conosciuto, in questo caso un numero, ovvero prima di iniziare il calcolo devi essere sicuro di avere un numero. Allo stesso modo, dovessi leggere un file, prima ti dovresti assicurare che esista, che abbia i permessi per leggerlo, che contenga i dati nel formato che tu vuoi, e solo dopo leggerlo. Il vero cialtrone invece fa una funzione per leggere il file infarcita di try e basta.

Ah, nemmeno io sono il programmatore che fa tutto in modo perfetto, anzi, invecchiando peggioro continuamente  :)
« Ultima modifica: 05 Maggio 2013, 21:44:57 da pastrank »

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
si ma la strada è ancora lunga :'( :'(
;D

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
si ma la strada è ancora lunga :'( :'(
La strada non è lunga. Devi solamente affrontare le difficoltà che incontri una alla volta.
In questo momento dovresti lavorare su quello che hai già cominciato a gestire. Vero quello che ha messo in evidenza pastrank. Però non mettere troppa carne sui fuoco.
Ti do ancora due consigli:
- rispondi allle proposte già affrontate ed a cui non ha ancora risposto;
- leggi bene il contenuto della mia firma, dopo averne fatto tesoro, cammina sempre dentro il binario della razionalità
 :ciao:
:ciao:

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
si ma la strada è ancora lunga :'( :'(
La strada non è lunga. Devi solamente affrontare le difficoltà che incontri una alla volta.
In questo momento dovresti lavorare su quello che hai già cominciato a gestire. Vero quello che ha messo in evidenza pastrank. Però non mettere troppa carne sui fuoco.
Ti do ancora due consigli:
- rispondi allle proposte già affrontate ed a cui non ha ancora risposto;
- leggi bene il contenuto della mia firma, dopo averne fatto tesoro, cammina sempre dentro il binario della razionalità
 :ciao:

si ora ricontrollo tutta la discussione

riguardo la tua firma la prima volta che l'ho letta già mi piaceva ora più che mai!!
 :ciao: :ciao:
;D