Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Operatori di conversione

    Salve a tutti, sono nuovo del forum e novizio nella programmazione.
    Stò cercando di sviluppare un'applicazione in Visual Studio 2010 che, dato un valore in una textBox(pesoTXT) al clik sul pulsante "elabora", mi restituisca un MessageBox a seconda dei controlli effettuati.
    Il mio problema è che quando lancio il Debug mi vien fuori "error C3861: 'CInt': identifier not found"
    Utilizzo CInt per convertire la stringa contenuta in pesoTXT in un Intero.
    Il codice è:
    codice:
    private: System::Void elabora_Click(System::Object^  sender, System::EventArgs^  e)
    {
        while((CInt((pesoTXT->Text))<=20) || (CString((pesoTXT->Text))>=999))
        {
            if ((CInt((pesoTXT->Text))=>20) && (CInt((pesoTXT->Text))<=65))
            {
                MessageBox::Show(" Utilizza Materasso 1",
                                 "Body Scanner", MessageBoxButtons::OKCancel,
                                 MessageBoxIcon::Asterisk);
            }
            else
            {
                if ((CInt((pesoTXT->Text))<=80) && (CInt((pesoTXT->Text))>65))
                {
                    MessageBox::Show("Utilizza Materasso 2",
                                     "Body Scanner", MessageBoxButtons::OKCancel,
                                     MessageBoxIcon::Asterisk);
                }
                else
                {
                    if ((CInt((pesoTXT->Text))<=95) && (CInt((pesoTXT->Text))>80))
                    {
                        MessageBox::Show("Utilizza Materasso 3",
                                         "Body Scanner", MessageBoxButtons::OKCancel,
                                         MessageBoxIcon::Asterisk);
                    }
                    else
                    {
                        if (((Cint(pesoTXT->Text))>95) && ((CInt(pesoTXT->Text))<999))
                        {
                            MessageBox::Show("Utilizza Materasso 4",
                                             "Body Scanner", MessageBoxButtons::OKCancel,
                                             MessageBoxIcon::Asterisk);
                        }
    
                    }
                }
            }
    
            MessageBox::Show("Peso Fuori Range",
                             "Body Scanner", MessageBoxButtons::OKCancel,
                             MessageBoxIcon::Asterisk);
        }
    }
    Qualcuno è in grado di aiutarmi?
    Grazie in Anticipo

  2. #2

    Moderazione

    Benvenuto sul forum! Ti ricordo che:
    • il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione;
    • il linguaggio di riferimento (e relativa versione) va sempre specificato (anche nel titolo, sotto forma di "tag").


    Ora correggo io, in futuro imposta correttamente la discussione fin da subito; nel frattempo ti consiglio di dare un'occhiata al regolamento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Comunque, CInt esiste solo in VB.NET (o meglio, "vive" in un assembly importato di default solo in VB.NET); in C++/CLI normalmente si usa il metodo statico System::Int32::Parse, oppure il metodo ToInt32 degli oggetti System::String.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Hai ragione Scusatemi tanto.
    Ma stò impazzendo per stà cosa.
    Ho provato a modificare il codice con System::Int32::Parse
    codice:
    private: System::Void elabora_Click(System::Object^  sender, System::EventArgs^  e) {
    
    
    							 
    				 while((System::Int32::Parse(pesoTXT->Text)<=20) || (System::Int32::Parse(pesoTXT->Text)>=999)) 
    				 {
    					 
    					 if ((System::Int32::Parse(pesoTXT->Text)=>20) && (System::Int32::Parse(pesoTXT->Text)<=65))
    					 {
    						 MessageBox::Show(" Utilizza Materasso 1",
    							 "Body Scanner", MessageBoxButtons::OKCancel,
    							 MessageBoxIcon::Asterisk);
    						
    					 } 
    					 else
    					 {
    						 if ((System::Int32::Parse(pesoTXT->Text)<=80) && (System::Int32::Parse(pesoTXT->Text)>65))
    						 {
    							 MessageBox::Show("Utilizza Materasso 2",
    								 "Body Scanner", MessageBoxButtons::OKCancel,
    								 MessageBoxIcon::Asterisk);
    							
    
    						 } 
    						 else
    						 {
    							 if ((System::Int32::Parse(pesoTXT->Text)<=95) && (System::Int32::Parse(pesoTXT->Text)>80))
    							 {
    								 MessageBox::Show("Utilizza Materasso 3",
    									 "Body Scanner", MessageBoxButtons::OKCancel,
    									 MessageBoxIcon::Asterisk);
    								 
    							 } 
    							 else
    							 {
    								 if ((System::Int32::Parse(pesoTXT->Text)>95) && (System::Int32::Parse(pesoTXT->Text)<999))
    								 {
    									 MessageBox::Show("Utilizza Materasso 4",
    										 "Body Scanner", MessageBoxButtons::OKCancel,
    										 MessageBoxIcon::Asterisk);
    									
    								 }
    
    							 }
    						 }
    					 }
    
    					 MessageBox::Show("Peso Fuori Range",
    						 "Body Scanner", MessageBoxButtons::OKCancel,
    						 MessageBoxIcon::Asterisk);		
    				 }
    MA ora, in fase di Debug, mi vengono fuori altri errori:
    syntax error : '>'
    syntax error : missing ';' before '{'

    Perchè nn accetta l'operatore >?

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Io aggiungerei qualche TAB in più e pure qualche riga vuota.
    Così il codice diventerebbe perfettamente illeggibile.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto, non

    =>20

    ma

    >=20
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Vi ringrazio a tutti, mi siete stati di grande aiuto.
    Ho finalmente risolto grazie ai vostri consigli, specie ad Oregon, non m ero accorto di quell'errore.
    codice:
    private: System::Void elabora_Click(System::Object^  sender, System::EventArgs^  e)
    
    			  {							 
    				  int p = System::Int32::Parse(pesoTXT->Text);
    				 do  
    				 {
    					 if ((p>=20) && (p<=65))
    					 {
    						 MessageBox::Show(" Utilizza Materasso 1","Body Scanner", MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);
    						 break;
    					 } 
    					 else
    					 {
    						 if ((p<=80) && (p>65))
    						 {
    							 MessageBox::Show("Utilizza Materasso 2","Body Scanner", MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);
    							 break;
    						 } 
    						 else
    						 {
    							 if ((p<=95) && (p>80))
    							 {
    								 MessageBox::Show("Utilizza Materasso 3","Body Scanner", MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);
    								 break;
    							 } 
    							 else
    							 {
    								 if ((p>95) && (p<999))
    								 {
    									 MessageBox::Show("Utilizza Materasso 4","Body Scanner", MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);
    									 break;
    								 }
    
    							 }
    						 }
    					 }
    
    					 MessageBox::Show("Peso Fuori Range","Body Scanner", MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);	
    					 MessageBox::Show("Inserisci Peso","Body Scanner", MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);
    					 break;
    				 }while((p<=20) || (p>=999));	
    				
    				
    		 }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.