View Full Version : سوال: آرايه با طول متغيير
f_g1348
دوشنبه 21 فروردین 1391, 10:25 صبح
با سلام
دوستان چطور ميتونم تو برنامه يه آرايه 2 بعدي تعريف كنم كه طول هر 2 بعدش متغيير باشه و مقادير قبلي پاك نشه؟ مثلاً ابعادش (3و2) باشه با مقادير درونشون بعد ابعادش بشه (4و5) و مقادير قبلي سرجايشان باشند و مقادير جديد در ادامه بيايند ؟
hakim22
دوشنبه 21 فروردین 1391, 12:32 عصر
کدش اینه :
Dim x, y As Integer
x = 5
y = 7
Dim myArr(,) As Integer
ReDim Preserve myArr(x, y)
کلمه ی کلیدی Preserve همونی هست که کاری میکنه داده های آرایه سر جاشون بمونن و تعدادشون فقط زیاد بشه.
اما پیشنهاد من اینه شما یک آرایه ی دو بعدی تعریف کنید و به تعداد دلخواه اونو به ArrayList اضافه کنید. از قدرت دات نت به راحتی میتونید استفاده کنید.
Hybrid
دوشنبه 21 فروردین 1391, 12:49 عصر
سلام دوستان ، چند خط توضیح اضافه بدم "
کلمه ی ذخیره شده Redim فقط میتونه بعد آخر یک آرایه چند بعدی رو تغییر بده ، یعنی لگه شما کد زیر رو بنویسید :
Dim x, y As Integer
x = 3
y = 55
Dim a(2, 2) As Integer
ReDim Preserve a(x, y)
با خطای
'ReDim' can only change the rightmost dimension.
مواجه میشین ، واسه جواب شما پیشنهادم اینه ،که یک آرایه دیگه بسازید و اجزای داخل آرایه قبلی رو درون آرایه ای که با بعد جدید ایجاد کردین کپی کنین چیزی شبیه کد زیر :
Dim a(1, 1) As Integer
a(0, 0) = 1
a(0, 1) = 2
a(1, 0) = 3
a(1, 1) = 55
Dim b(3, 5) As Integer
Array.Copy(a, b, a.Length)
موفق باشید./
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.