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

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

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

c# | חיפוש אות שנמצאת כמה פעמים בtextbox

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 2 כותבים 225 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • נ מנותק
    נ מנותק
    נ נח
    כתב ב נערך לאחרונה על ידי
    #1

    לצורך תוכנה לגימטריות...
    נגיד שהאות א' נמצאת 4 פעמים - אני רוצה שיחזיר למשתנה +4
    תודה רבה מאד

    dovidD תגובה 1 תגובה אחרונה
    1
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לנ נח ב נערך לאחרונה על ידי
      #2
      foreach (var group in textBox1.Text.ToLookup(c => c))
      {
          Console.WriteLine($"{group.Key}: {group.Count()}");
      }
      

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

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

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

        ניסיתי לעשות שא' יהיה שווה 1, ב' = 2 וכו' עם הקוד של @dovid
        אבל כל פעם הוא לוקח רק את הערך של האות שנלחצה אחרונה (כפול מספר הפעמים שהיא מופיעה), ולא את הערך של כל האותיות
        שוב תודה

        int num = 0;
                private void textBox1_TextChanged(object sender, EventArgs e)
                {
                    foreach (var group in textBox1.Text.ToLookup(c => c))
                    {
                        if ($"{group.Key}" == "א")
                        {
                            num = group.Count();
                            textBox2.Text = num.ToString();
                        }
        
                        if ($"{group.Key}" == "ב")
                        {
                            num = group.Count() * 2;
                            textBox2.Text = num.ToString();
                        }
        
                        if ($"{group.Key}" == "ג")
                        {
                            num = group.Count() * 3;
                            textBox2.Text = num.ToString();
                        }
                    }
                }
        
        dovidD תגובה 1 תגובה אחרונה
        1
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לנ נח ב נערך לאחרונה על ידי
          #4

          @נ-נח אתה צריך ללמוד תכנות. לא יעזור שאני אכתוב את הקוד במקומך, נכון?
          אני יותר מרוצה לכוון אותך אבל לא יודע בדיוק איפה אתה אוחז.

          בקוד שכתבת הforeach זה לולאה, שועברת על התוצאות של textBox1.Text.ToLookup(c => c)
          התוצאות הם בעצם כלל האותיות שיש בטקסט, אבל לא יותר מפעם לאות מסויימת.
          למשל אבא, ייתן א,2 ב,1.
          בקוד שלך הצבת בלולאה ערך בnum, וככה כל "סיבוב" של הלולאה הnum מקבל ערך חדש. במקרה של אבא בסיבוב הראשון הnum יהיה א2=2, וזה ייכנס לnum, אבל אז יבוא הסיבוב השני ובמקום להוסיף הוא יציב בnum את הערך של ב1=2 ושוב ערכו יהיה רק שניים.
          לכן אתה צריך לכתוב לפני הבלוק של הforeach ניקוי של הnum כלומר num=0, ובתך הלולאה num = num + X כדי להוסיף את הערך לאט לאט ורק אחרי הבלוק של הforeach להציב את num בtextBox2.

          בקשר להשוואה $"{group.Key}" == "ב"
          ניכר שהשתדלת כמה שפחות "להרוס" בקוד ששמתי... לא צריך את המרכאות: group.Key == "ב".
          כמו"כ זה יכול להיות קוד ארוך וקשה לעריכה ולהבנה, עליך לחשוב על דרך שתקל על התרגום בין אות לערכה המספרי מאשר if ארוך ארוך.

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

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

          נ 2 תגובות תגובה אחרונה
          5
          • נ מנותק
            נ מנותק
            נ נח
            השיב לdovid ב נערך לאחרונה על ידי
            #5

            @dovid אין עליך!!! עכשיו עובד!

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

              @dovid אמר בc# | חיפוש אות שנמצאת כמה פעמים בtextbox:

              בקשר להשוואה $"{group.Key}" == "ב"
              ניכר שהשתדלת כמה שפחות "להרוס" בקוד ששמתי... לא צריך את המרכאות: group.Key == "ב".

              לא עובד לי בלי המרכאות...

              @dovid אמר בc# | חיפוש אות שנמצאת כמה פעמים בtextbox:

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

              עשיתי עם סוויץ'

              switch ($"{group.Key}")
                              {
                                  case "א":
                                      num += group.Count();
                                      break;
                                  case "ב":
                                      num += group.Count() * 2;
                                      break;
                                  case "ג":
                                      num += group.Count() * 3;
                                      break;
                                  case "ד":
                                      num += group.Count() * 4;
                                      break;
                                  case "ה":
                                      num += group.Count() * 5;
                                      break;
                                  case "ו":
                                      num += group.Count() * 6;
                                      break;
                                  case "ז":
                                      num += group.Count() * 7;
                                      break;
                                  case "ח":
                                      num += group.Count() * 8;
                                      break;
                                  case "ט":
                                      num += group.Count() * 9;
                                      break;
                                  case "י":
                                      num += group.Count() * 10;
                                      break;
                                  case "כ":
                                      num += group.Count() * 20;
                                      break;
                                  case "ך":
                                      num += group.Count() * 20;
                                      break;
                                  case "ל":
                                      num += group.Count() * 30;
                                      break;
                                  case "מ":
                                      num += group.Count() * 40;
                                      break;
                                  case "ם":
                                      num += group.Count() * 40;
                                      break;
                                  case "נ":
                                      num += group.Count() * 50;
                                      break;
                                  case "ן":
                                      num += group.Count() * 50;
                                      break;
                                  case "ס":
                                      num += group.Count() * 60;
                                      break;
                                  case "ע":
                                      num += group.Count() * 70;
                                      break;
                                  case "פ":
                                      num += group.Count() * 80;
                                      break;
                                  case "ף":
                                      num += group.Count() * 80;
                                      break;
                                  case "צ":
                                      num += group.Count() * 90;
                                      break;
                                  case "ץ":
                                      num += group.Count() * 90;
                                      break;
                                  case "ק":
                                      num += group.Count() * 100;
                                      break;
                                  case "ר":
                                      num += group.Count() * 200;
                                      break;
                                  case "ש":
                                      num += group.Count() * 300;
                                      break;
                                  case "ת":
                                      num += group.Count() * 400;
                                      break;
                              }
              

              תודה ענקית!

              תגובה 1 תגובה אחרונה
              2
              • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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