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

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

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

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

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

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

لوله بازکنی تهران

آراد برندینگ

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

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

irspeedy

درج اگهی ویژه

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

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

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

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

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

قیمت سرور dl380 g10

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

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

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

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

همکاری آی نو و گزینه دو

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

الک آزمایشگاهی

الک آزمایشگاهی

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 2960]

bt

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







-


گوناگون

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


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