رفتن به مطلب
  • 0

حمید زارع

سوال

دوستان سلام

کسی میدونه در B4A جایگزینی برای دستور Redim هست یا نه ؟

ببینید من یه آرایه تعریف کردم که تعدادش متغیره

Dim ID(?) as int

حالا میخام توی جاهای مختلف این تعداد رو تعیین کنم

نمیدونم چه کنم ؟

لطفاً راهنمایی بفرمایید ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

دوستان سلام

کسی میدونه در B4A جایگزینی برای دستور Redim هست یا نه ؟

ببینید من یه آرایه تعریف کردم که تعدادش متغیره

Dim ID(?) as int

حالا میخام توی جاهای مختلف این تعداد رو تعیین کنم

نمیدونم چه کنم ؟

لطفاً راهنمایی بفرمایید ...

درود دوست عزیز

شما میتوانید از دستور زیر استفاده کنید :

Array AS [Tipe]

مثال:

اول طبق معمول آرایه خود را تعریف میکنید بدون مشخص کردن تعداد عناصر آن:

Dim Ar() as int

بعد در زمان اجرای برنامه مقدار دهی وتعداد عناسرش را مشخص میکنیم:

Ar=Array As Int(1,9,7)

الان ما یه آرایه ی 3 عنصری داریم:

Ar(0)==>1

Ar(1)==>9

Ar(2)==>7

**موفق باشید**

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مطمئئن نیستم این قابلیت توی B4A وجود داشته باشه *fekr*

تا حالا باهاش برخورد نداشتم.

علی جان فکر کنم شما منظورشون رو اشتباه گرفتید. چیزی که شما میگید برای زمانی هست که ما مقادیر محدودی رو داریم.

حالا شما فکر کنید میخواهیم از 0 تا 500 رو استفاده کنیم. باید 500 تا آرایه رو add کنیم ؟ *dava*

البته شاید هم من منظور دوستمون رو اشتباه گرفته باشم و کار شما هم به دردشون بخوره ولی برای مثالی که من زدم روش آرایه ریزی کاربرد نداره.

ولی واسم جالب بود همین الان یک خورده روش کار کردم کلک رشتی پیاده کردم روش :-d خودمم فکر نمیکردم جواب بده ولی داد *slowdance*

Sub Globals
   File.WriteString(File.DirInternal,"1.txt","5")
   Dim x As Int = File.ReadString(File.DirInternal,"1.txt")
   Dim i(x) As Int
End Sub

خب ؟ اومدیم یک فایل 1 ساختیم و توش نوشتیم 5 . بعد این فایل رو خوندیم و مساوی که Int به نام x قرار دادیم

حالا اومدیم به جای علامت سوال از همون x استفاده کردیم

هرجا که میخواهید مقدار این x رو عوض کنید کافیه بیایید بگید:

File.WriteString(File.DirInternal,"1.txt","14")
   Globals

ما الان مقدارش رو 14 کردیم . یعنی از اندیس 0 تا 13 رو میتونیم بهش بدیم.

اون Globals هم میاد Sub Globals رو دوباره میخونه تا مقدار x جدید رو برامون بگیره :-d

تست کنید اطلاع بدید *laugh2*

راستی این رو هم بگم میتونید به جای txt نوشتن مستقیم از یک int جداگانه استفاده کنید. من برای تست کردن از این روش استفاده کردم *monkey*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کارت جالب بوده مهدی

البته اینی که گذاشتی درسته ولی.. حالا ما میخوایم تو زمان اجرای برنامه توسط مثلا یه button مقدارش رو تغیر بدیم؟؟!!یعنی متغیرمون یه بار تو Globals تعریف شده چی کار کنیم اگه جای دیگه به این صورت تعریف کنیم دیگه سراسری نیست و تو sub های دیگه جواب نمیده.؟!

این کار شما دقیقا با خود ثابت فرقی نداره زمان اجرا مقدارش مشخص کرده حالا من یه کار جالب دیگه انجام دادم در واقع کار تو رو کاملش کردم سادست و قطعا جواب میده هر جا هم که بخوایم میتونیم مقدارش رو تغیر بدیم.

اول تو Globals تعریف میکنیم.

Sub Globals
Dim i As Int
Dim Ar() As Int
End Sub

بعد هرجا از برنامه که خواستیم ساختارش رو تغیر بدیم به این صورت عمل میکنیم مثلا:

Sub Button1_Click
   i=3
   Dim d(i) As Int
   Ar=d
   Ar(0)=1
   Ar(1)=2
   Ar(2)=3
   For i=0 To Ar.Length -1
   Log(Ar(i))
   Next
   Log(Ar.Length)

End Sub

ما هرجا که خواستیم میتونیم یه آرایه موقتی تعریف کنیم تعداد عناصرش رو مشخص کنیم بعد برابر آرایه متغیرمون قرار میدیم بعد حله دیگه تست کنید جواب میده.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کار جدید شما کاملا درسته.

کار قبلی من هم درست بود و هرجا که دوست داشته باشی میتونی تغییر ایجاد کنی

چون کد رو به صورت تشریحی نوشتم و کد دقیق رو نگفتم احتمالا اشتباه برداشت کردی Laie_100.gif

اگه حتی 1% به حرف من شک داری بگو سورس رو بنویسم بزارم 13.gif

بنده اون Globals رو این طرف دکوری نخوندم که 4chsmu1.gif هرموقع دوست داشته باشیم میتونیم Globals رو فراخوانی کنیم 30upn9j.gif

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...