تور لحظه آخری
امروز : چهارشنبه ، 1 اسفند 1403    احادیث و روایات:  امام محمد باقر(ع):بهترین چیزی را که دوست دارید درباره شما بگویند ، درباره مردم بگویید.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

armanekasbokar

armanetejarat

Future Innovate Tech

پی جو مشاغل برتر شیراز

خرید یخچال خارجی

بانک کتاب

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

خرید از چین

خرید از چین

خرید سرور اچ پی ماهان شبکه

کاشت ابرو طبیعی و‌ سریع

دوره آموزش باریستا

مهاجرت به آلمان

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

کاشت ابرو طبیعی

پارتیشن شیشه ای اداری

رزرو هتل خارجی

تولید کننده تخت زیبایی

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

ایونا

تعمیرگاه هیوندای

چاپ جزوه ارزان قیمت

کشتی تفریحی کیش

تور نوروز خارجی

خرید اسکرابر صنعتی

طراحی سایت فروشگاهی فروشگاه آنلاین راه‌اندازی کسب‌وکار آنلاین طراحی فروشگاه اینترنتی وب‌سایت

کاشت ابرو با خواب طبیعی

هدایای تبلیغاتی

زومکشت

فرش آشپزخانه

خرید عسل

قرص بلک اسلیم پلاس

کاشت تخصصی ابرو در مشهد

صندوق سهامی

تزریق ژل

خرید زعفران مرغوب

تحصیل آنلاین آمریکا

سوالات آیین نامه

سمپاشی سوسک فاضلاب

مبل کلاسیک

بهترین دکتر پروتز سینه در تهران

صندلی گیمینگ

کفش ایمنی و کار

دفترچه تبلیغاتی

خرید سی پی

قالیشویی کرج

سررسید 1404

تقویم رومیزی 1404

ویزای توریستی ژاپن

قالیشویی اسلامشهر

 






آمار وبسایت

 تعداد کل بازدیدها : 1861013526




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

مشکل در استفاده از redim در ویژوال بیسیک -


واضح آرشیو وب فارسی:سایت ریسک: مشکل در استفاده از redim در ویژوال بیسیک zhm 11 ارديبهشت 1388, 22:30سلام .بازم پیشاپیش از هر عزیزی که لطف کنه و کمکم کنه ممنونم.تا اینجا هم از آقای the king خیلی خیلی ممنونم. یه ماتریس دارم به اسم newmat.این ماتریس در ابتدای برنامه از نوع variant تعریف شده.یکبار در اوایل برنامه ابعاد ماتریس بصورت زیر مشخص شده: (redim preserve newmat(1 to i,1 to j که i وj اعداد مشخصی اند.برای بار دوم که در طول برنامه از redim preserve newmat استفاده کردم برنامه موقع اجرا خطا میده!(subscript out of range) مشکل چی میتونه باشه؟ saalek110 11 ارديبهشت 1388, 22:42visual basic+"subscript out of range"+redim را سرچ کنید. اولین سایت اینه: سایت بالا و بقیه سایتها را ببینید. شاید مشکل شما هم همین باشد. معمولا وقتی خطایی دریافت می کنید با سرچ خطا می توانید خیلی اوقات سریع به جواب برسید. چون حتما فرد دیگر هم با این خطا قبلا روبرو شده. the_king 11 ارديبهشت 1388, 23:36سلام .بازم پیشاپیش از هر عزیزی که لطف کنه و کمکم کنه ممنونم.تا اینجا هم از آقای the king خیلی خیلی ممنونم. یه ماتریس دارم به اسم newmat.این ماتریس در ابتدای برنامه از نوع variant تعریف شده.یکبار در اوایل برنامه ابعاد ماتریس بصورت زیر مشخص شده: (redim preserve newmat(1 to i,1 to j که i وj اعداد مشخصی اند.برای بار دوم که در طول برنامه از redim preserve newmat استفاده کردم برنامه موقع اجرا خطا میده!(subscript out of range) مشکل چی میتونه باشه؟ طبیعتا زمانی که قصد حفظ محتویات قبلی آرایه را دارید از Preserve استفاده می کنید، اما Preserve محدودیت های خاص خودش را دارد. Preserve صرفا برای تعویض اندیس بالایی آخرین مولفه آرایه کاربرد داره. مثلا اگر مولفه اول آرایه دو بعدی 1 الی 4 باشه و مولفه دوم 2 الی 10 باشه، شما صرفا می توانید مقدار 10 را به عدد دیگری تغییر دهید. تلاش برای تغییر مولفه پایینی مولفه دوم (عدد 2) و یا تغییر در مولفه اول (1 الی 4) باعث بروز خطا خواهد شد. شما بایستی ابتدا آرایه را در یک آرایه دیگر کپی بگیرید، آرایه را بدون استفاده از Preserve تغییر ابعاد دهید و مجددا مقادیر را از آرایه کپی شده در آرایه اصلی بازنویسی کنید. تابع زیر این عمل را انجام می دهد، از آن بجای Redim Preserve استفاده کنید، پارامتر اول، نام آرایه و پارامتر های دوم و سوم اندیس های پایینی و بالایی مولفه اول و پارامتر های چهارم و پنجم، اندیس های پایینی و بالایی مولفه دوم هستند ، این تابع صرفا با آرایه های دو بعدی کار می کند و پیش از اجرای تابع، بایستی آرایه غیر تهی باشد : Private Function RedimPreserveArray(ByRef VarArray As Variant, ByVal X1 As Long, ByVal X2 As Long, ByVal Y1 As Long, ByVal Y2 As Long) As Variant Dim TempArray As Variant Dim X As Long, Y As Long ReDim TempArray(X1 To X2, Y1 To Y2) X1 = IIf(X1 >= LBound(VarArray, 1), X1, LBound(VarArray, 1)) X2 = IIf(X2 <= UBound(VarArray, 1), X2, UBound(VarArray, 1)) Y1 = IIf(Y1 >= LBound(VarArray, 2), Y1, LBound(VarArray, 2)) Y2 = IIf(Y2 <= UBound(VarArray, 2), Y2, UBound(VarArray, 2)) For X = X1 To X2 For Y = Y1 To Y2 TempArray(X, Y) = VarArray(X, Y) Next Next RedimPreserveArray = TempArray End Function تابع فوق آرایه تغییر اندازه داده شده را به عنوان مقدار خروجی برمی گرداند. مثلا کد زیر ابعاد آرایه A را از 5x10 به 6x20 تغییر می دهد : Dim A() As Variant ReDim A(1 To 5, 1 To 10) As Variant A = RedimPreserveArray(A, 1, 6, 1, 20) مثال زیر اندیس پایینی مولفه های آرایه A را از 1 به 3 تغییر می دهد و در B ذخیره می کند : Dim A(1 To 10, 1 To 20) As Variant Dim B() As Variant B = RedimPreserveArray(A, 3, 10, 3, 20) zhm 11 ارديبهشت 1388, 23:57بازم مثله همیشه جوابتون کامل و عالی بود و طبق معمول جز تشکر چیزی نمیتونم بگم.یه دنیا ممنونتونم....از آقای سالک هم بابت جوابشون ممنونم:) بخاطر جوابای کاملتونه که به هر مشکلی میخورم اولین راه حلی که به ذهنم میرسه کمک گرفتن از شماست.بازم ممنون:)




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2968]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن