Se provo a convertire una stringa che contiene valori non numerici mi da errore....![]()
come posso fare per eliminare quello che non è numerico? sapendo che il valore è ricevuto da una inputbox?
conta:=inputbox('Contatore','Modifica:',0);
Se provo a convertire una stringa che contiene valori non numerici mi da errore....![]()
come posso fare per eliminare quello che non è numerico? sapendo che il valore è ricevuto da una inputbox?
conta:=inputbox('Contatore','Modifica:',0);
Di quale linguaggio stiamo parlando?
Il regolamento prevede che tale informazione sia presente, oltre che nella discussione per ovvie motivazioni di buon senso, anche nel titolo.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ups ho omesso il linguaggiocomunque è delphi pardon
puoi provare a gestire la eccezionie
try ... except ....
ciao
sergio
Come suggerito puoi provare con un blocco try oppure puoi usare la StrToIntDef dove puoi passare un intero di default nel caso non riuscisse a convertire la stringa.
...
ho provato con il try .... ma forse sbaglio qualcosa perchè mi esce comunque il messaggio di errore
Codice PHP:
conta:=inputbox('Contatore','Modifica il contatore:','0');
try
test:=strtoint(conta);
if (conta<>Mod_dati.FIBQuery.FieldByName('NMCALL').asString) then
begin
// salvare nel db
Lblnumero.Caption:=conta;
end;
end;
except
showmessage('Inserire un numero intero valido');
end;
Primo: indenta il codice o non si capisce nulla.
Secondo: nel codice che hai scritto sembra esserci un end di troppo.
Terzo: per questo caso puoi usare strtointdef, basta passare come valore di default un valore che sei sicuro di non trovare nella query che interroghi. Ti risparmi un blocco try except.
...
Ciao, credo che ti dia l'errore siccome hai dimenticato di gestire il tipo di eccezione. Nel tuo caso ti deve mandare il messaggio di errore (cioè invocare lo ShowMessage) se appunto si cerca di convertire una stringa che non contiene numeri, qundi vi è un errore di conversione.Originariamente inviato da sally3000
ho provato con il try .... ma forse sbaglio qualcosa perchè mi esce comunque il messaggio di errore
Codice PHP:
conta:=inputbox('Contatore','Modifica il contatore:','0');
try
test:=strtoint(conta);
if (conta<>Mod_dati.FIBQuery.FieldByName('NMCALL').asString) then
begin
// salvare nel db
Lblnumero.Caption:=conta;
end;
end;
except
showmessage('Inserire un numero intero valido');
end;
try
X :=strtoInt(label1.caption);
except
on EConvertError do showmessage('Errore');
end;
in questo piccolo esempio cerco di inserire in una variabile intera X il contenuto di una label, nel caso in cui la stringa in questione contenga qualche carattere si solleva un eccezione e in quel caso (cioè di un EConvertError) invoco ShowMessage, ma potevo fare quel che volevo :-).
Ricorda comunque che in fase di esecuzione, il Delphi ti avvertirà sempre con una sua finestra di errore, dicendoti che si è sollevata quell'eccezione, tu premi F9 e continua con l' esecuzione, vedrai che poi apparirà il tuo messaggio di errore e il tuo programma continuerà normalmente. Questo è un comportamento normale di Delphi che può essere aggirato smanettando con quelche settaggio, una volta lo feci, ma ora francamente non mi ricordo quale sia.
Spero di averti aiutato.
![]()