ABA


"מקבל שגיאה בטעינת פונקציה, השאלה היא למה?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10192 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10192
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   23:53   18.12.10   
אל הפורום  
  מקבל שגיאה בטעינת פונקציה, השאלה היא למה?  
 
   ערכתי לאחרונה בתאריך 18.12.10 בשעה 23:59 בברכה, dvir8
 
יש לי את הקוד הבא:

private void UpdateXml_List()
{
XmlDocument doc = new XmlDocument();
doc.Load("C:\\windows\\temp\\mlst.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("//Mail");

foreach (XmlNode node in nodes)
{
string date = node.InnerText;
combo.Items.Add(date);
}
}

כשאני קורא לפונצקיה מתקבלת השגיאה הבאה:(השגיאה מתייחסת ל date)
Object reference not set to an instance of an object.

מה שהפונקציה אמורה לעשות היא להכניס את הטקסט שבתוך האלמנט לרשימה של ה ComboBox.

יש לציין כי אם אני קורא לה ממקום אחר בתוכנית אני לא מקבל את ההודעה, והכל עובד תקין, אבל חשוב לי שהיא תרוץ בהתחלה ולא באמצע התוכנית.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בעיקרון לא אמורה להיות בעיה Nesher  19.12.10 02:06 1
     אם אני שם את הקריאה לפונצקיה במיקום אחר בתוכנית, dvir8 19.12.10 08:03 2
  צירפתי את המבנה המלא, כדי שיהיה יותר קל להבין, dvir8 19.12.10 08:36 3
     ברור שזה לא יעבוד Nesher  19.12.10 09:12 4
         אוקי עכשיו זה יותר הגיוני :) dvir8 19.12.10 10:07 5
  זהו התוכנה מושלמת. תודה רבה לך יא גבר!! dvir8 19.12.10 12:20 6
     בבקשה Nesher  19.12.10 13:05 7

       
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   02:06   19.12.10   
אל הפורום  
  1. בעיקרון לא אמורה להיות בעיה  
בתגובה להודעה מספר 0
 
אתה יכול לחסוך את השורה השלישית והרביעית ולעשות ככה
ולעשות ישר


private void UpdateXml_List() { XmlDocument doc = new XmlDocument(); doc.Load("C:\\windows\\temp\\mlst.xml"); foreach (XmlNode node in doc.SelectNodes("//Mail")) { string date = node.InnerText; combo.Items.Add(date); } }

אני חושב שבמקום //Mail זה צריך להיות /Mail
אתה צריך לוודא שה-xpath תקין
תביא את ה-XML שנדע איך הוא בנוי ומה יכול לגרום לבעיה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   08:03   19.12.10   
אל הפורום  
  2. אם אני שם את הקריאה לפונצקיה במיקום אחר בתוכנית,  
בתגובה להודעה מספר 1
 
   זה קורא את השדות ועובד תקין, בגלל זה מוזר שזה לא עובד כשאני שם אותה בראשי.
הקובץ XML שלי נראה כך:

<?xml version="1.0"?>
<ROOT>
<Mail>[email protected]</Mail>
<Mail>[email protected]</Mail>
<Mail>dvir</Mail>
<Mail></Mail>
</ROOT>


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   08:36   19.12.10   
אל הפורום  
  3. צירפתי את המבנה המלא, כדי שיהיה יותר קל להבין,  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 19.12.10 בשעה 08:41 בברכה, dvir8
 
זאת הצורה שהקוד לא עובד בה משום מה.
כמובן שזה לא הקוד המלא של התוכנה, ושחסרות מלא פונקציות, אבל מבחינת המבנה, זה אותו דבר אחד לאחד.

using System.IO;
using System.Xml;
namespace LinkSender
{

public partial class Main : Form
{
public Main()
{

CheckXml_File();
LoadXml_List();
InitializeComponent();

}

private void LoadXml_List()
{
XmlDocument doc = new XmlDocument();
doc.Load("C:\\windows\\temp\\mlst.xml");
foreach (XmlNode node in doc.SelectNodes("//Mail"))
{
string mail = node.InnerText;
MailExp.Items.Add(mail);
MailTofes.Items.Add(mail);
}
}


מנגד, בצורה הזאת הקוד כן עובד.

using System.IO;
using System.Xml;
namespace LinkSender
{

public partial class Main : Form
{
public Main()
{

CheckXml_File();
InitializeComponent();

}

private void UpdateMail_List()
{
XmlDocument doc = new XmlDocument();
doc.Load("C:\\WINDOWS\\Temp\\mlst.xml");

XmlNode newElem;
newElem = doc.CreateNode(XmlNodeType.Element, "Mail", "");
newElem.InnerText = MailExp.Text;

XmlElement root = doc.DocumentElement;
root.AppendChild(newElem);
try
{
doc.Save("C:\\WINDOWS\\Temp\\mlst.xml");
}
catch (Exception)
{
MessageBox.Show("Can't create Xml file!");
}
LoadXml_List(); (If I put it here it's doing the job.)

}

private void LoadXml_List()
{
XmlDocument doc = new XmlDocument();
doc.Load("C:\\windows\\temp\\mlst.xml");
foreach (XmlNode node in doc.SelectNodes("//Mail"))
{
string mail = node.InnerText;
MailExp.Items.Add(mail);
MailTofes.Items.Add(mail);
}
}


אני לא מצליח להבין איזה קשר יש לצורה שאני מכניס את הקריאה לפונצקיה בתוך הפונקציה שמעדכנת את הקובץ Xml ומוסיפה לו שדות, ואם אני קורא לפונצקיה מפונקציה ראשית, זה לא עובד תקין.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   09:12   19.12.10   
אל הפורום  
  4. ברור שזה לא יעבוד  
בתגובה להודעה מספר 3
 
קודם קוראים ל-InitializeComponent();
אחרי זה אפשר להשתמש בפקדים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   10:07   19.12.10   
אל הפורום  
  5. אוקי עכשיו זה יותר הגיוני :)  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   12:20   19.12.10   
אל הפורום  
  6. זהו התוכנה מושלמת. תודה רבה לך יא גבר!!  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   13:05   19.12.10   
אל הפורום  
  7. בבקשה  
בתגובה להודעה מספר 6
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net