610
צפיות
צפיות
5
תשובות
תשובות
איך לזהות אם משתנה הוא מערך? (VB)
רציתי לדעת, איך אני יכול לזהות משתנה אם הוא מערך או סתם משתנה רגיל (הערכים מסוג string)?
הבעיה היא שאני לא יכול לדעת האם הערך שמתקבל מהפונקציה שלי (שעובדת עם עוד מספר פונצקיות) ולבסוף אמורה להחזיר לי מערך דינאמי.
הענין הוא שאם הפונצקיה לא מוצאת כלום בערכים ששלחתי לה, אז פשוט לא יהיה מערך דינמאי אלא רק יוחזר null ואז זה כלל לא יהיה מערך.
מספר דגשים קטנים:
אני לא רוצה להגדיר בפונקציה שגם אם לא נמצא כלום אז להפוך אותו לגודל 0 עם ערך NULL.
ואין לי אפשרות לבדוק מחוץ לפונקציה אם אכן זה הכנסתי נתונים או לא..
בקיצור ולענין, יש פונקציה שבודקת האם משתנה הוא מערך או רגיל?
ניסתי UBOUND אבל אם זה לא מערך, אז כמובן שזה יחזיר שגיאה.
תודה לעונים.
5 תשובות
IsArray
https://www.webmaster.org.il/article.asp?id=292#arr
צוות WebMaster <img src='/images/3.gif'>
לא עוזר..
כי מה שקורה זה בגלל שהמערך דינאמי והוגדר כ
dim a()
כלומר הוא כבר נוצר כמערך, אך ללא כל INDEX, ואז בגלל שהפונקציה לא מצאה שום דבר, אז מה שהיא מחזירה זה מערך ללא איברים כלומר a()
ואז אם אני ארצה להציג את הקוד הבא
IsArray(a)
אני אקבל TRUE כי זה בהחלט מערך..
מצד שני, אם אני אבקש UBOUND עליו, אני אקבל שגיאה, כי הוא לא מוגדר..ללא ערכים..
יש פיתרון?
(ואני לא מדבר על שינויים בקוד, כי לשנות את הקוד שזה יעבוד יש לי דרך..מחפש משהו יותר רלוונטי).
on error resume next
ולתפוס את השגיאה
צוות WebMaster <img src='/images/3.gif'>
ומה בקשר ל isNULL?
זה לא אני, זה הילד הרע
איך בדיוק יעזור isNull ?
אם המערך ללא איברים, הרי שאין כל אפשרות להכניס לו ערך..לדוגמה:
isNull(a(0))
לא יעבוד. וגם isnull(a) לא יעבוד (מציג תמיד FALSE גם כאשר המערך ללא איברים וגם כאשר הוא עם איברים ובעלי ערכים).
אגב, השתמשתי ב ON ERROR למרות שזה לא בדיוק הפתרון שאיחלתי לו..
אם יש הצעות\תיקונים מוזמנים להגיב 🙂