PDA

View Full Version : [vc#] - problema conversione che non capisco


Dr Nick Riviera
21-06-2007, 17:24
Non capisco come mai mi dia un problema di conversione, in pratica quando faccio il build mi dice che è tutto apposto ma se eseguo l'applicazione non funziona ed ho notato col debugger che il problema è nel punto dove una variabile string viene convertita in int..

esempio:

strStrings = "..."; // ci sono gli elementi della stringa che saranno circa 80

string mystring = strStrings.Substring(45); // prende il 45° carattere dalla stringa sopra

int val1 = Convert.ToInt32(mystring); // converte il carattere in mystring in intero

..non è la prima volta che converto una stringa in intero e con questo metodo (anche perchè non so se ce ne siano altri) non ho mai avuto problemi.. ma qui non so perchè non funziona l'applicazione..

:confused:

Dr Nick Riviera
21-06-2007, 17:31
scusate.. ho risolto subito dopo provando a convertire in char.. comunque pensavo funzionasse lo stesso.. anche perchè errori non me ne viene dati..

:confused:

Dr Nick Riviera
22-06-2007, 03:26
Il metodo:

string --> char
char --> int

..funziona, ma non c'è una maniera più diretta per convertire da string a int?

miguelito
22-06-2007, 10:48
Non è necessario utilizzare la funzione substring per ottenere un solo carettere della stringa. Le stringhe sono considerate da c# molto simili ad array quindi basta fare:

// ci sono gli elementi della stringa che saranno circa 80
strStrings = "...";

// ottengo il carattere desiderato
char myChar = strStrings[numero_del_carattere_che_vuoi];

// converte il carattere in myChar in intero
int val1 = Convert.ToInt32(myChar);

o più semplicemente:

// ci sono gli elementi della stringa che saranno circa 80
strStrings = "...";

// converte il carattere in intero
int val1 = Convert.ToInt32(strStrings[numero_del_carattere_che_vuoi]);

Dr Nick Riviera
22-06-2007, 13:06
Grazie miguelito.. funziona.. ;)

Dr Nick Riviera
22-06-2007, 15:38
Evito di aprire un nuovo topic..
Ho un problema sulla dichiarazione di una variabile..
In pratica ho un punto nel programma dove mi viene presa una stringa messa in una textbox dal form1, la passa in un'altra textbox nel form2, la elabora (con una funzione richiamata nel form1 ovviamente) e mette il risultato in una variabile (chiamiamola "val2"). Questa variabile è stata dichiarata come pubblica nel form1:

public partial class Form1 : Form
{
public int val2 = 0;

...

Quindi a fine funzione quando il prog torna nel primo form la variabile val2 presumevo contenesse il valore dopo l'elaborazione nel form2.. ma invece quando torna nel form1 val2 è 0..

Pensavo fosse un problema di dichiarazione perchè anche nel form2 avevo messo:
int val2 = Convert.blablabla

...allora ho provato a togliere int (nel form2) e mi dice che val2 non esiste nel contesto corrente.. qundi è come se la variabile pubblica dichiarata nel form1 non fosse vista..

Sapete perchè se dichiaro una variabile pubblica in un form questa non mi viene vista anche negli altri form? Sbaglio punto della dichiarazione?
Thx...