דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. הכנסת אובייקטים חדשים לתוך מערך c#

הכנסת אובייקטים חדשים לתוך מערך c#

מתוזמן נעוץ נעול הועבר תכנות
17 פוסטים 3 כותבים 505 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #6

    @chagold ראשית, תודה!
    אני ממליץ על המדריך הישן של ניר אדר: http://www.underwar.co.il/download.asp?ID=104 הוא ישן ואקדמי אבל גם מדוייק.
    מדריך של מקרוסופט אינטראקטיבי באנגלית https://dotnet.microsoft.com/learn/dotnet/in-browser-tutorial/1

    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
    תגובה 1 תגובה אחרונה
    4
    • chagoldC מנותק
      chagoldC מנותק
      chagold
      כתב ב נערך לאחרונה על ידי
      #7

      נקודה ששכחתי, וצריכה אצלי עדיין טיפול.

      בקוד הנ"ל, נתוני האובייקטים שצריכים להיכנס לליסט צריכים שיבואו מתוך המערך (בקוד דלהלן 'lineOrder'). וניסיתי לגשת אליו, ללא הצלחה.

      מצ"ב הקוד והשגיאות.

      List<OrderLineItem> listproducts = new List<OrderLineItem>();
      foreach (OrderLineItem lineOrder in jsonorder.Order.Envelopes.Envelope.Lines.Line)
          {
            listproducts.Add(new OrderLineItem { product_id = lineOrder.@BarcodeType });
          };
      

      08074691-8d67-4997-b446-3a70e30ac2e1-image.png

      וגם לא ככה

      List<OrderLineItem> listproducts = new List<OrderLineItem>();
       
      foreach (OrderLineItem lineOrder in jsonorder.Order.Envelopes.Envelope.Lines.Line)
       
         { 
      listproducts.Add(new OrderLineItem { product_id = lineOrder["@BarcodeType"].GetString()});
                   
         };
      

      d7796719-36ca-4d13-bd74-4ef15dd24e72-image.png

      תודה

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #8

        אני לא יודע לעזור לך, בOrderLineItem אין כזה מאפין, בדיוק כפי שאומרת השגיאה.
        אתה אומר שיש ויש לך כנראה סיבות נכונות לזה, אבל אין לי מושג איך ליישב את הבעיה.

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        תגובה 1 תגובה אחרונה
        1
        • chagoldC מנותק
          chagoldC מנותק
          chagold
          כתב ב נערך לאחרונה על ידי
          #9

          אני נותן עוד תמונה.
          58546310-d3d2-4ce1-971b-97c86294d640-image.png
          כמו שרואים הוא עבר את שורה 231 ובאמת הערך הודפס למסך.
          הוא נתקע רק בשורה 234. ואם אני מפענח נכון זה שגיאת המרה. אולי בגלל שזה בעצם ניגש ל-json וזה לא מוגדר כמערך c#?

          תגובה 1 תגובה אחרונה
          0
          • chagoldC מנותק
            chagoldC מנותק
            chagold
            כתב ב נערך לאחרונה על ידי
            #10

            ניסיתי להמיר את הJSON לARRAY לפי המדריך הזה, אבל יש שגיאה.
            d9472085-1dce-4708-9a5e-6b5552484206-image.png

            ואגב, אם אני מדפיס את המערךך json המקורי הוא ככה:

              [
              
                {
              
                  "@Category": "Print",
              
                  "@Product": "Print 10x15",
              
                  "@Theme": "",
              
                  "@ProductName": "Print 10x15",
              
                  "@ProductCode": "",
              
                  "@PaperType": "Undefined",
              
                  "@BarcodeType": "EAN13",
              
                  "@GS1DataMatrix240": "",
              
                  "@EanCode": "",
              
                  "@Quantity": "3",
              
                  "@FixFee": "0",
              
                  "@ShippingCost": "0",
              
                  "@ServiceFee": "0",
              
                  "@UnitPrice": "0",
              
                  "@Discount": "0",
              
                  "@PriceWithoutVat": "0",
              
                  "@VatAmount": "0",
              
                  "@Price": "0"
              
                },
              
                {
              
                  "@Category": "Print",
              
                  "@Product": "Print 15x20",
              
                  "@Theme": "",
              
                  "@ProductName": "Print 15x20",
              
                  "@ProductCode": "",
              
                  "@PaperType": "Undefined",
              
                  "@BarcodeType": "EAN13",
              
                  "@GS1DataMatrix240": "",
              
                  "@EanCode": "",
              
                  "@Quantity": "3",
              
                  "@FixFee": "0",
              
                  "@ShippingCost": "0",
              
                  "@ServiceFee": "0",
              
                  "@UnitPrice": "0",
              
                  "@Discount": "0",
              
                  "@PriceWithoutVat": "0",
              
                  "@VatAmount": "0",
              
                  "@Price": "0"
              
                },
              
                {
              
                  "@Category": "",
              
                  "@Product": "Passport Photos (45x35 x 8) 10x15 (35 mm x 45 mm)",
              
                  "@Theme": "",
              
                  "@ProductName": "Passport Photos (45x35 x 8) 10x15 (35 mm x 45 mm)",
              
                  "@ProductCode": "",
              
                  "@PaperType": "Undefined",
              
                  "@BarcodeType": "EAN13",
              
                  "@GS1DataMatrix240": "",
              
                  "@EanCode": "",
              
                  "@Quantity": "1",
              
                  "@FixFee": "0",
              
                  "@ShippingCost": "0",
              
                  "@ServiceFee": "0",
              
                  "@UnitPrice": "0",
              
                  "@Discount": "0",
              
                  "@PriceWithoutVat": "0",
              
                  "@VatAmount": "0",
              
                  "@Price": "0"
              
                },
              
                {
              
                  "@Category": "Gift",
              
                  "@Product": "Mug BLack",
              
                  "@Theme": "",
              
                  "@ProductName": "Mug BLack",
              
                  "@ProductCode": "",
              
                  "@PaperType": "Undefined",
              
                  "@BarcodeType": "EAN13",
              
                  "@GS1DataMatrix240": "",
              
                  "@EanCode": "",
              
                  "@Quantity": "1",
              
                  "@FixFee": "0",
              
                  "@ShippingCost": "0",
              
                  "@ServiceFee": "0",
              
                  "@UnitPrice": "0",
              
                  "@Discount": "0",
              
                  "@PriceWithoutVat": "0",
              
                  "@VatAmount": "0",
              
                  "@Price": "0"
              
                },
              
                {
              
                  "@Category": "Poster",
              
                  "@Product": "Poster 20x25",
              
                  "@Theme": "",
              
                  "@ProductName": "Poster 20x25",
              
                  "@ProductCode": "",
              
                  "@PaperType": "Undefined",
              
                  "@BarcodeType": "EAN13",
              
                  "@GS1DataMatrix240": "",
              
                  "@EanCode": "",
              
                  "@Quantity": "1",
              
                  "@FixFee": "0",
              
                  "@ShippingCost": "0",
              
                  "@ServiceFee": "0",
              
                  "@UnitPrice": "0",
              
                  "@Discount": "0",
              
                  "@PriceWithoutVat": "0",
              
                  "@VatAmount": "0",
              
                  "@Price": "0"
              
                }
              
              ]
            

            יש בו משהו לא תקין?

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #11

              תוכל להראות את הקוד בו נוצר ה jsonorder?

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              תגובה 1 תגובה אחרונה
              0
              • chagoldC מנותק
                chagoldC מנותק
                chagold
                כתב ב נערך לאחרונה על ידי chagold
                #12
                dynamic jsonorder = JsonConvert.DeserializeObject(convert_xml_to_json($"{ e.FullPath}"));
                

                והפונקציה:

                private static string convert_xml_to_json(string xmlFile)
                 
                         {//string xml
                 
                             string xml = File.ReadAllText(xmlFile);
                 
                
                
                 
                             XmlDocument doc = new XmlDocument();
                 
                             doc.LoadXml(xml);
                 
                 
                 
                             string jsonText = JsonConvert.SerializeXmlNode(doc);
                 
                 
                             return jsonText;
                 
                         }
                
                תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי dovid
                  #13

                  @chagold אמר בהכנסת אובייקטים חדשים לתוך מערך c#:

                  convert_xml_to_json

                  תשנה בforeach מOrderLineItem לvar.
                  ותפנה למאפיינים כאינדקס:

                  lineproduct["@ProductName"]
                  

                  מה מקור הXML? כלומר מי ייצר אותו?

                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                  chagoldC תגובה 1 תגובה אחרונה
                  1
                  • chagoldC מנותק
                    chagoldC מנותק
                    chagold
                    השיב לdovid ב נערך לאחרונה על ידי
                    #14

                    @dovid אמר בהכנסת אובייקטים חדשים לתוך מערך c#:

                    מה מקור הXML? כלומר מי ייצר אותו?

                    תוכנה לעריכת תמונות, Diland Kiosk 2

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי dovid
                      #15

                      אוקי.
                      אז דבר ראשון הפונקציה convert_xml_to_json מיותר, תעבוד ישירות מול הXML.
                      הנה קוד ראשוני לעבוד עם הXML:

                      var xdoc = XDocument.Load(e.FullPath);
                      var lines = xdoc.Document
                                      .Element("Order")
                                      .Element("Envelopes")
                                      .Element("Envelope")
                                      .Element("Lines")
                                      .Elements("Line");
                      
                      foreach (var element in lines)
                      {
                          Console.WriteLine(element.Element("@ProductName").Value);
                      }
                      

                      אם זה לא עובד כנראה אני טועה בניחוש המבנה, וא"כ יעזור לי אם תכלול דוגמא קצרה של הXML.

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב ב נערך לאחרונה על ידי
                        #16

                        אפשר יותר פשוט:

                        var xdoc = XDocument.Load(e.FullPath);
                        var lines = xdoc.Document.Descendants("Lines");
                        
                        foreach (var element in lines)
                        {
                            Console.WriteLine(element.Element("@ProductName").Value);
                        }
                        
                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        תגובה 1 תגובה אחרונה
                        1
                        • chagoldC מנותק
                          chagoldC מנותק
                          chagold
                          כתב ב נערך לאחרונה על ידי
                          #17

                          תודה רבה.
                          באמצעות הפוסט הקודם -- (ה-var) הסתדר הכל.

                          תודה גם על ה-XML.

                          תגובה 1 תגובה אחרונה
                          0

                          בא תתחבר לדף היומי!
                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • דף הבית
                          • קטגוריות
                          • פוסטים אחרונים
                          • משתמשים
                          • חיפוש
                          • חוקי הפורום