שלח תשובה

זירת השאלות

455
צפיות
5
תשובות

איך לזהות אם משתנה הוא מערך? (VB)

,‏ 28 באפריל, 2008

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

מספר דגשים קטנים:
אני לא רוצה להגדיר בפונקציה שגם אם לא נמצא כלום אז להפוך אותו לגודל 0 עם ערך NULL.
ואין לי אפשרות לבדוק מחוץ לפונקציה אם אכן זה הכנסתי נתונים או לא..

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

תודה לעונים.

תגיות:

5 תשובות

  1. לא עוזר..
    כי מה שקורה זה בגלל שהמערך דינאמי והוגדר כ

    dim a()

    כלומר הוא כבר נוצר כמערך, אך ללא כל INDEX, ואז בגלל שהפונקציה לא מצאה שום דבר, אז מה שהיא מחזירה זה מערך ללא איברים כלומר a()

    ואז אם אני ארצה להציג את הקוד הבא

    IsArray(a)

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

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

  2. on error resume next
    ולתפוס את השגיאה


    צוות WebMaster <img src=’/images/3.gif’>

  3. זהר פלד הגיב:

    ומה בקשר ל isNULL?


    זה לא אני, זה הילד הרע

  4. איך בדיוק יעזור isNull ?
    אם המערך ללא איברים, הרי שאין כל אפשרות להכניס לו ערך..לדוגמה:
    isNull(a(0))
    לא יעבוד. וגם isnull(a) לא יעבוד (מציג תמיד FALSE גם כאשר המערך ללא איברים וגם כאשר הוא עם איברים ובעלי ערכים).

    אגב, השתמשתי ב ON ERROR למרות שזה לא בדיוק הפתרון שאיחלתי לו..
    אם יש הצעות\תיקונים מוזמנים להגיב 🙂

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!