תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

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

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

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

      dovid תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • dovid
        dovid ניהול @נ נח נערך לאחרונה על ידי

        foreach (var group in textBox1.Text.ToLookup(c => c))
        {
            Console.WriteLine($"{group.Key}: {group.Count()}");
        }
        

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

        תגובה 1 תגובה אחרונה תגובה ציטוט 4
        • נ נח
          נ נח נערך לאחרונה על ידי נ נח

          ניסיתי לעשות שא' יהיה שווה 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();
                          }
                      }
                  }
          
          dovid תגובה 1 תגובה אחרונה תגובה ציטוט 1
          • dovid
            dovid ניהול @נ נח נערך לאחרונה על ידי

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

            בקוד שכתבת ה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 נערך לאחרונה על ידי

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

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • נ נח
                נ נח @dovid נערך לאחרונה על ידי

                @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
                • הועבר מ תכנות ע"י  dovid dovid 
                • 1 / 1
                • פוסט ראשון
                  פוסט אחרון
                בא תתחבר לדף היומי!