PDA

View Full Version : آرایه پویا (Dynamic)



nasim bahari
سه شنبه 15 تیر 1389, 16:18 عصر
به آرایه ای که به توان تعداد آن را در زمان اجرای برنامه تغییر داد آرایه دینامیک یا پویا می گویند.
این ویژگی وقتی از قبل تعداد عناصر را نمی دانید ، مفید است.


Dim a() as integer

همانطور که می بینید برای آرایه a هیچ تعداد عنصری تعیین نکردیم.

اما قبل از استفاده از چنین آرایه ای باید تعداد ابعاد و عناصر آنرا مشخص کرد، که این کار با دستور ReDim انجام می گیرد.

ReDim [Preserve] ArrayName(SubScript

که در دستور بالا SubScript کران بالای جدید آرایه می باشد.

به مثال زیر توجه فرمایید :


Dim a() as integer

ReDim a(1
a(0)=25
a(1)=30
.
.
.


حال اگر بخواهید هنگام تغییر ابعاد ، اطلاعات قبلی آرایه از بین نرود . باید از کلمه کلیدی Preserve استفاده کنید.

در مثال زیر می بینید که چگونه تعداد عناصر آرایه را به 6 افزایش می دهیم.


dim a() as integer
ReDim a(1
a(0)=25
a(1)=30
ReDim Preserve a(5
a(2)=40
a(3)=45
a(4)=50
a(5)=55
.
.
.

گل های خوشگلم...
امید وارم که این آموزش مفید واقع بشه..................

ricky22
شنبه 09 مرداد 1389, 19:18 عصر
سلام خسته نباشید :)

به نظرتون با وجود List و Array List دیگه نیاز به ارایه پویا میشه؟

موفق باشید

nasim bahari
شنبه 09 مرداد 1389, 21:44 عصر
سلام خسته نباشید :)

به نظرتون با وجود List و Array List دیگه نیاز به ارایه پویا میشه؟

موفق باشید


هدف از این تایپیک، فقط و فقط آموزش آرایه دینامیک بوده و دیگر هیچ..........

Mani_rf
یک شنبه 10 مرداد 1389, 11:55 صبح
سلام خسته نباشید :)

به نظرتون با وجود List و Array List دیگه نیاز به ارایه پویا میشه؟

موفق باشید

نوع کار برد List و Array List با آرایه پویا متفاوت است. برای اطلاعات بیشتر به MSDN مراجعه کنید.

ricky22
یک شنبه 10 مرداد 1389, 12:18 عصر
نوع کار برد List و Array List با آرایه پویا متفاوت است. برای اطلاعات بیشتر به MSDN مراجعه کنید.
http://blogs.msdn.com/b/joshwil/archive/2004/04/13/112598.aspx

ممنون.
جالب بود نه؟


ArrayList List<int> Difference (%)
32-bit 19MB 8MB 237%
64-bit 39MB 8.1MB 481%

Mani_rf
یک شنبه 10 مرداد 1389, 13:12 عصر
http://blogs.msdn.com/b/joshwil/archive/2004/04/13/112598.aspx

ممنون.
جالب بود نه؟


ArrayList List<int> Difference (%)
32-bit 19MB 8MB 237%

64-bit 39MB 8.1MB 481%


خیلی جالب بود اما ربطی به ماجرا نداشت!!!

ricky22
یک شنبه 10 مرداد 1389, 13:43 عصر
نوع کار برد List و Array List با آرایه پویا متفاوت است. برای اطلاعات بیشتر به MSDN مراجعه کنید.
لطفا کاربرد Dynamic Array رو بفرمایید یا اینکه لینک مربوطه رو اینجا بگزارید.


خیلی جالب بود اما ربطی به ماجرا نداشت!!!
:چشمک:

Mani_rf
یک شنبه 10 مرداد 1389, 14:31 عصر
آیا میتوان به ArrayList و یا List<> یک سری کنترلر (مثلا تعدادی نامشخص TextBox) نسبت داد و به آنها رخداد (Event) داد؟

mohammad.moosaei
یک شنبه 10 مرداد 1389, 14:56 عصر
آیا میتوان به ArrayList و یا List<> یک سری کنترلر (مثلا تعدادی نامشخص TextBox) نسبت داد و به آنها رخداد (Event) داد؟


با سلام :


بله چرا که نشه ! تو این دنیا همه چیز ممکنه !:متعجب:





Private txtarray As New ArrayList

Public Sub filltxtArray()

For i As Integer = 0 To 8

Dim txt As New TextBox
txt.Name = "txtbox" & (i + 1).ToString
txt.Location = New Point(20, (i + 1) * txt.Height)
txt.MaxLength = 300
AddHandler txt.TextChanged, AddressOf txtbox_TextChanged

txtarray.Add(txt)

Next

For Each txtbox As TextBox In txtarray

Me.Controls.Add(txtbox)

Next

End Sub

Private Sub txtbox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtName.TextChanged
'your Code
End Sub

Mani_rf
یک شنبه 10 مرداد 1389, 15:22 عصر
این کد که نوشتی یکم مشکوک به نظر میرسه!
اولا که چندتا Text تعریف کردی و به Array نسبت دادی.
دوما که از Array فقط به عنوان یک شمارنده تعداد عناصر استفاده کردی، در واقع من منضورم این بود که مثلا 8 تا Text را بتونی با اندیسشون بهشون دسترسی داشته باشی. بعد تا اونجا که من متوجه شدم شما فقط یک Text تعریف کردی و همون را به Array ریختی و همون را به اون رویداد نسبت دادی، در نتیجه نمی تواند تشخیص داد که نوشته کدوم Text تغییر کرده .
:متفکر: خلاصه یکم مشکوک به نظر میرسه.
من مطمعن نیستم که بشه این کار را کرد، اگر شما مطمعنی یک تیکه برنامه بگذار که من بتونم اجراش کنم و نتیجه را ببینم ، از پست قبیلت یک چیز جدید یاد گرفتم ، حتما این هم یک نکته داره که من نمی دونم. من خیلی به ArrayList وارد نیستم...

mohammad.moosaei
یک شنبه 10 مرداد 1389, 19:51 عصر
این کد که نوشتی یکم مشکوک به نظر میرسه!
اولا که چندتا Text تعریف کردی و به Array نسبت دادی.
دوما که از Array فقط به عنوان یک شمارنده تعداد عناصر استفاده کردی، در واقع من منضورم این بود که مثلا 8 تا Text را بتونی با اندیسشون بهشون دسترسی داشته باشی. بعد تا اونجا که من متوجه شدم شما فقط یک Text تعریف کردی و همون را به Array ریختی و همون را به اون رویداد نسبت دادی، در نتیجه نمی تواند تشخیص داد که نوشته کدوم Text تغییر کرده .
:متفکر: خلاصه یکم مشکوک به نظر میرسه.
من مطمعن نیستم که بشه این کار را کرد، اگر شما مطمعنی یک تیکه برنامه بگذار که من بتونم اجراش کنم و نتیجه را ببینم ، از پست قبیلت یک چیز جدید یاد گرفتم ، حتما این هم یک نکته داره که من نمی دونم. من خیلی به ArrayList وارد نیستم...


با سلام دوباره :


دوست گرامی ، من توی تاپیک قبل از یک textbox استفاده نکردم بلکه هشت texbox تعریف کردم . و Event اونا رو به تابع txtbox_TextChanged نسبت دادم .

یک مثال براتون آماده کردم ، امیدوارم که متقاعدتون کنه.:چشمک:

یا علی.