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

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

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

בקשת עזרה עם קוד בc#

מתוזמן נעוץ נעול הועבר תכנות
14 פוסטים 3 כותבים 211 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י מנותק
    י מנותק
    יוסף בן שמעון
    השיב לpcinfogmach ב נערך לאחרונה על ידי
    #5

    @pcinfogmach אתה יכול לאשר שזה קורה רק במחרוזת שמכילה מרכאות?

    pcinfogmachP תגובה 1 תגובה אחרונה
    1
    • pcinfogmachP מנותק
      pcinfogmachP מנותק
      pcinfogmach
      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי pcinfogmach
      #6

      תודה לכל העונים כנראה שהבעיה היא אחרת ממה שחשבתי כי עכשיו עשיתי בדיקה עם linqpad והכל עבד כשורה מצו"ב קוד הבדיקה אשב על זה קצת

      static void Main(string[] args)
      {
      	// Manually define a comma-separated string
      	string searchBookList = "בראשית - עם ניקוד,בראשית - עם טעמים,בראשית - ללא ניקוד,בראשית - רש''י,בראשית - רש''י (ב),בראשית - שפתי חכמים,בראשית - רמב''ן,בראשית - תרגום יונתן,בראשית - אור החיים,בראשית - אבן עזרא,בראשית - בעל הטורים,בראשית - תרגום אונקלוס,בראשית - ספורנו,בראשית - כלי יקר,בראשית - דעת זקנים,מדרש רבה - חומש בראשית,מדרש תנחומא - בראשית,ילקוט שמעוני - בראשית,חק לישראל - בראשית,חק לישראל - בראשית  (ט)"; // Replace with your list of book names
      
      	// Split the comma-separated string into a lookup of book names
      	ILookup<string, string> bookNamesFilter = searchBookList.Split(',')
      		.ToLookup(bookName => bookName);
      
      	// Assuming filePaths is a list of file paths
              List<string> filePaths = new List<string>
              {
                  "בראשית - עם ניקוד",
      "בראשית - עם טעמים",
      "בראשית - ללא ניקוד",
      "בראשית - רש''י",
      "בראשית - רש''י (ב)",
      "בראשית - שפתי חכמים",
      "בראשית - רמב''ן",
      "בראשית - תרגום יונתן",
      "בראשית - אור החיים",
      "בראשית - אבן עזרא",
      "בראשית - בעל הטורים",
      "בראשית - תרגום אונקלוס",
      "בראשית - ספורנו",
      "בראשית - כלי יקר",
      "בראשית - דעת זקנים",
      "מדרש רבה - חומש בראשית",
      "מדרש תנחומא - בראשית",
      "ילקוט שמעוני - בראשית",
      "חק לישראל - בראשית",
      "חק לישראל - בראשית  (ט)",
      "שמות  -עם ניקוד",
      "שמות  -עם טעמים",
      "שמות  - ללא ניקוד",
      "שמות - רש''י",
      "שמות - רש''י (ב)",
      "שמות - שפתי חכמים",
      "שמות - רמב''ן",
      "שמות - תרגום יונתן",
      "שמות - אור החיים",
      "שמות - אבן עזרא",
      "שמות - בעל הטורים",
      "שמות - תרגום אונקלוס",
      "שמות - ספורנו",
      "שמות - כלי יקר",
      "שמות - דעת זקנים",
      "מדרש רבה - חומש שמות",
      "מדרש תנחומא - שמות",
      "ילקוט שמעוני - שמות",
      "חק לישראל - שמות",
      "חק לישראל - שמות  (ט)",
      
                  // Add more file paths as needed
              };
      
      	foreach (string filePath in filePaths)
              {
      		bool containsBook = bookNamesFilter
      			.Any(group => group.Any(bookName => filePath.Contains(group.Key)));
      
      		if (containsBook)
      		{
      			Console.WriteLine($"File '{filePath}' contains at least one of the book names.");
      		}
      	}
      }
      

      גמ"ח מידע מחשבים ואופיס

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

        מה פתאום להביא את כל הקוד?? גם ככה הבאת מידי... גם שינית את הקוד משני המקרים וגם יש שמה הרבה הבלים של נסיונות, חבל, למה לא לכתוב פה מה צריך.
        אתה לא יכול לומר "יש לי טקסט A ואני רוצה לבדוק אם הוא אחד מהאלמנטים שמופיעים בB עם פסיק ביניהם"?
        לפי מה שהבנתי ממך, אתה צריך לכתוב קוד כזה:

         bool exsist = Properties.Settings.Default.searchBookList.Split(',').Any(x => x == filepath);
        

        Lookup עושה משהו אחר מlist (הוא מקבץ פריטים לפי ערכם או לפי פרמטר נבחר) והוא לא יותר מהר ממנה, ושניהם מיותרים לצורך שלך.

        הקוד שלך נראה כמו של אחד שלא שמע על המושג פונקציה/פרוצדורה מימיו, וזה מאוד מקשה עליך לעבוד.
        אתה צריך להתרגל לחלק את הקוד לפיסות קטנות, שעל כל פיסה יש תפקיד מוגדר וסגור. את שיתוף המידע בין הפיסות עושים או עם שדות/מאפיינים משותפים במחלקה (OOP).

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

          רק כעת אני מבין מהקוד מהlinqpad מה אתה מתכוון יותר מהיר, כי אתה בודק על פני הרבה ערכים ולא רק אחד.
          מה שיותר מהיר זה אכן Dictionarry אבל במקרה שלך שזה רק מפתחות ללא ערכים אז משתמשים בhashSet.
          ניכר שאתה משתמש הרבה עם בינה מלאכותית..

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

            הנה קוד עם HashSet:

            static void Main(string[] args)
            {
                string searchBookList = "בראשית - עם ניקוד,בראשית - עם טעמים,בראשית - ללא ניקוד,בראשית - רש''י,בראשית - רש''י (ב),בראשית - שפתי חכמים,בראשית - רמב''ן,בראשית - תרגום יונתן,בראשית - אור החיים,בראשית - אבן עזרא,בראשית - בעל הטורים,בראשית - תרגום אונקלוס,בראשית - ספורנו,בראשית - כלי יקר,בראשית - דעת זקנים,מדרש רבה - חומש בראשית,מדרש תנחומא - בראשית,ילקוט שמעוני - בראשית,חק לישראל - בראשית,חק לישראל - בראשית  (ט)"; // Replace with your list of book names
                var bookNamesFilter =  searchBookList?.Split(',').ToHashSet();
            
                var filePaths = new List<string>
                    {
                        "בראשית - עם ניקוד",
            "בראשית - עם טעמים",
            "בראשית - ללא ניקוד",
            "בראשית - רש''י",
            "בראשית - רש''י (ב)",
            "בראשית - שפתי חכמים"
                    };
            
                if(bookNamesFilter != null)
                    foreach (string filePath in filePaths)
                    {
                        if (bookNamesFilter.Contains(filePath))
                            Console.WriteLine($"File '{filePath}' contains at least one of the book names.");
                    }
            }
            

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            pcinfogmachP תגובה 1 תגובה אחרונה
            1
            • pcinfogmachP מנותק
              pcinfogmachP מנותק
              pcinfogmach
              השיב לdovid ב נערך לאחרונה על ידי
              #10

              @dovid כתב בבקשת עזרה עם קוד בc#:

              if (searchBookList.Contains(filePath))

              לא הבנתי שורה זו כי כאן חזרת לstring המקורי לכאורה אז היכן אני משתמש בhashset

              גמ"ח מידע מחשבים ואופיס

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

                צודק, טעיתי, תחליף את המילה searchBookList בbookNamesFilter.

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                  גם שני שורות מעל יש להחליף כנ"ל.

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  1
                  • pcinfogmachP מנותק
                    pcinfogmachP מנותק
                    pcinfogmach
                    השיב לdovid ב נערך לאחרונה על ידי
                    #13

                    @dovid כתב בבקשת עזרה עם קוד בc#:

                    הקוד שלך נראה כמו של אחד שלא שמע על המושג פונקציה/פרוצדורה מימיו, וזה מאוד מקשה עליך לעבוד.
                    אתה צריך להתרגל לחלק את הקוד לפיסות קטנות, שעל כל פיסה יש תפקיד מוגדר וסגור. את שיתוף המידע בין הפיסות עושים או עם שדות/מאפיינים משותפים במחלקה (OOP).

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

                    אגב שאלה האם פיצול קוד ארוך להרבה חלקים עלול להאט את הקוד (כי למעשה עכשיו יש קצת יותר שורות בקוד מאם אילו הכל היה בתוך קוד אחד)

                    גמ"ח מידע מחשבים ואופיס

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

                      עלות הזמן לא נמדדת בשורות.
                      לקריאה לפונקציה יש עלות מקרוסקופית תיאורטית, תשאיר את זה למדעני טילים.
                      בתכלס מי שמשתמש עם פונקציות הקוד שלו מהיר יותר כי כפועל יוצא הוא פשוט כותב קוד טוב יותר 🙂

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

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

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

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