iow4
Messages postés302Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention 2 novembre 2008
-
29 août 2006 à 15:56
iow4
Messages postés302Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention 2 novembre 2008
-
30 août 2006 à 09:25
Bonjour,
J'ai deux maskedtextbox qui sont parametré pour recevoir que 2 int32 ( 99 )
Je dois faire un programme qui parcourt chaque ligne d'un dictionnaire et qui doit regarder si la longueur de la ligne est au minimum la valeur du premier mask et au maximum celle du deuxieme
Seulement quand je compile j'ai une erreur d'execution :
<hr />
L'exception System.NullReferenceException n'a pas été gérée
Message="La référence d'objet n'est pas définie à une instance d'un objet."
Source="Bf"
StackTrace:
à bf.Form1.button3_Click(Object sender, EventArgs e) dans C:\Documents and Settings\thom\Mes documents\Visual Studio 2005\Projects\Bf\Bf\Form1.cs:ligne 177
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.Run(Form mainForm)
à BruteForceMsn.Program.Main() dans C:\Documents and Settings\thom\Mes documents\Visual Studio 2005\Projects\Bf/Bf\Program.cs:ligne 17
à System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
<hr />
Voici mon code :
<hr />
line = sr.ReadLine();
if (line.Length <
Convert.ToInt32(maskedTextBox1.Text) || line.Length >
Convert.ToInt32(maskedTextBox2.Text)){
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 29 août 2006 à 23:47
Ce n'est pas line.Lenght qui est null, mais line comme te l'explique fregolo. Ceci certainement dût au fait que tu es à la fin de ton fichier et que tu continues de lire => il retourne null.
De plus, on utilise plutôt un numericUpDown qu'une maskedTextBox si c'est juste pour limiter la saisie à des entiers.
iow4
Messages postés302Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention 2 novembre 20084 29 août 2006 à 17:47
Non c'est pas ligne, la petit fleche de la boite d'exeption me montre la condition if.
Ca peut pas être la ligne car sans la condition tout marche du feu de dieu
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 29 août 2006 à 18:04
Oui tu as un objet null dans ta condition, mais en mode debug tu dois pouvoir voir quel objet est null : line, maskedTextBox1 ou
maskedTextBox1)
Sinon je te conseille d'encapsule
r ton if dans un autre if :
line = sr.ReadLine();
if (line != null)
{
if (line.Length <
Convert.ToInt32(maskedTextBox1.Text) || line.Length >
Convert.ToInt32(maskedTextBox2.Text)) {
motok++;
}
}
}
Je ne pense pas que la convertion plante, sinon ça le dirait dans l'exception (je pense).
Vous n’avez pas trouvé la réponse que vous recherchez ?