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

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

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

החזר ערך קטן מבין שניים ב vb6

מתוזמן נעוץ נעול הועבר ארכיון code613m
16 פוסטים 3 כותבים 781 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #4

    לא נראה לי הפונקציה שלך כל כך טובה,
    כי היא יכולה להחזיר רק אחת משני אפשריות - אמת או שקר, אבל באמת כאשר משווים בין שני דברים יש שלוש אפשרויות - או שהים שווים או הראשון גדול או השני גדול, ולכן בפונקציית COMPARE בדוטנט יש החזרה של 0 או 1 או -1.

    פורסם במקור בפורום CODE613 ב06/01/2014 23:16 (+02:00)

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

      אבל עכשיו הסתכלתי ברפלקטור וראיתי שגם בדוטנט הפונקציה MIN עובדת כמו שעשית:

      Public Shared Function Min(ByVal val1 As Integer, ByVal val2 As Integer) As Integer 
                  If (val1 > val2) Then
                      Return val2
                  End If
                  Return val1
              End Function
      

      פורסם במקור בפורום CODE613 ב06/01/2014 23:20 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #6

        @רחמים

        לא נראה לי הפונקציה שלך כל כך טובה,
        כי היא יכולה להחזיר רק אחת משני אפשריות - אמת או שקר, אבל באמת כאשר משווים בין שני דברים יש שלוש אפשרויות - או שהים שווים או הראשון גדול או השני גדול, ולכן בפונקציית COMPARE בדוטנט יש החזרה של 0 או 1 או -1.

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

        פורסם במקור בפורום CODE613 ב06/01/2014 23:33 (+02:00)

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

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

          @ClickOne

          במקרה הגרוע ששניהם שווים, הוא יחזיר את אחד מהשניים... וזה ממש לא משנה איזה!

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

          פורסם במקור בפורום CODE613 ב06/01/2014 23:37 (+02:00)

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

            @רחמים

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

            דומני שמטרת הבדיקה הובהרה כאן בכותרת.

            פורסם במקור בפורום CODE613 ב06/01/2014 23:39 (+02:00)

            אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

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

              ראובן שאל את שמעון:
              מה יותר קטן 2 או 2 ?
              שמעון ענה:
              2

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

              פורסם במקור בפורום CODE613 ב06/01/2014 23:43 (+02:00)

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

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

                פורסם במקור בפורום CODE613 ב06/01/2014 23:50 (+02:00)

                אין טסט כמו פרודקשן.

                המייל שלי urivpn@gmail.com

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

                  דבר שבאמת הייתי משנה בגלל הטענה שלך זה:
                  במקום:

                  If value1 > value2
                  

                  הייתי כותב:

                  If value1 >= value2
                  

                  אבל זה באמת תלוי בארכיטקט.

                  @ארכיטקט

                  האם ידוע למישהו אם יש פונקציה מובנית ב vb6 שמחזירה ערך נמוך מבין שניים??? כמו Math.Min בדוט נט....
                  הפיתרון הגאוני שלי הוא בינתים ככה:

                  Function GetMinValue(value1, value2)
                  If value1 > value2 Or IsNull(value1) Or IsMissing(value1) Or value1 = Empty Then
                  GetMinValue = value2
                  Else
                  GetMinValue = value1
                  End If
                  
                  End Function
                  

                  הייתי משנה את:

                  Or IsNull(value1) Or IsMissing(value1) Or value1 = Empty
                  

                  ב:

                  Not IsNumeric(value1)
                  

                  הפונקצייה IsNumeric מחזירה לך בוליאני אם הערך הוא מספר (מכל סוג), וגם אם לא הגדרת סוג בvalue1 ובטעות נכנס טקסט, זה יחזיר false משא"כ הפונקצייה שלך.

                  פורסם במקור בפורום CODE613 ב06/01/2014 23:55 (+02:00)

                  אין טסט כמו פרודקשן.

                  המייל שלי urivpn@gmail.com

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

                    יש בדיחה שמתכנת אחד הלך בשליחות אשתו לקנות במכולת, היא אמרה לו כך: תביא לחם, ואם יש ביצים תביא 12.
                    המתכנת חזר עם 12 לחמים, הסיבה: אכן היו ביצים במכולת.
                    אז לגבי ראובן ושמעון, תלוי באיזה ראובן ושמעון מדובר...
                    בנוגע לשינויים של קליק וואן, אל תשכח שיש גם ערכי תאריכים אפשריים, וכן ערכי אותיות למה לא? שמת לב שלא הגדרתי טיפוס לערך. אז מה שעלול לעמוד לנו לרועץ זה רק ערכים ריקים, כי הפונקציה הזו נועדה בכל מקרה להחזיר ערך כלשהו ככל הניתן (השירות שהפונקציה הזאת נותנת הוא למקרים בהם יש לך 1 מתוך 2 שדות, ופעמים הרבה שאחד השדות ריקים והלא רוצים אנו בפונקציה)

                    פורסם במקור בפורום CODE613 ב06/01/2014 23:56 (+02:00)

                    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

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

                      @ארכיטקט

                      If value1 > value2 Or IsNull(value1) Or IsMissing(value1) Or value1 = Empty Then
                      

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

                      Public Function IsNothing(varToTest As Variant) As Integer
                      '  Tests for a "logical" nothing based on data type
                      '  Empty and Null = Nothing
                      '  Number = 0 is Nothing
                      '  Zero length string is Nothing
                      '  Date/Time is never Nothing
                      
                          IsNothing = True
                      
                          Select Case VarType(varToTest)
                              Case vbEmpty
                                  Exit Function
                              Case vbNull
                                  Exit Function
                              Case vbBoolean
                                  If varToTest Then IsNothing = False
                              Case vbByte, vbInteger, vbLong, vbSingle, vbDouble, vbCurrency
                                  If varToTest <> 0 Then IsNothing = False
                              Case vbDate
                                  IsNothing = False
                              Case vbString
                                  If (Len(varToTest) <> 0 And varToTest <> " ") Then IsNothing = False
                          End Select
                      
                      End Function
                      

                      פורסם במקור בפורום CODE613 ב07/01/2014 00:06 (+02:00)

                      אין טסט כמו פרודקשן.

                      המייל שלי urivpn@gmail.com

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

                        @ארכיטקט

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

                        אתה צודק, בטעות הסתכלתי על הקוד שרחמים העלה ושם הייתה החזרה של ערך: (As Integer)

                        Public Shared Function Min(ByVal val1 As Integer, ByVal val2 As Integer) As Integer
                        

                        פורסם במקור בפורום CODE613 ב07/01/2014 00:10 (+02:00)

                        אין טסט כמו פרודקשן.

                        המייל שלי urivpn@gmail.com

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

                          מה ההבדל בין פונקיציית ()IsNothing לבין השוואה עם שני אופרטורים Is Nothing

                          פורסם במקור בפורום CODE613 ב07/01/2014 00:13 (+02:00)

                          תגובה 1 תגובה אחרונה
                          0
                          • clickoneC מנותק
                            clickoneC מנותק
                            clickone
                            כתב ב נערך לאחרונה על ידי
                            #16

                            @רחמים

                            מה ההבדל בין פונקיציית ()IsNothing לבין השוואה עם שני אופרטורים Is Nothing

                            אם תפתח ברפלקטור תראה שאכן אין הבדל. אם כי יש שמספרים שיותר נוח Is Nothing בגלל השלילה Not.
                            התשובה מתייחסת לדוטנט (אם כי יכול להיות שגם בVBA זה נכון, אבל שם באמת יש פונקצייה מאחורה, ולא סתם בדיקה של Is Nothing)
                            מקור התשובה כאן

                            פורסם במקור בפורום CODE613 ב07/01/2014 00:18 (+02:00)

                            אין טסט כמו פרודקשן.

                            המייל שלי urivpn@gmail.com

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

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

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

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