PDA

View Full Version : سوال: قرار دادن تعداد خاصی از یک متغیر در هر بار فرخوانی متد



L_eskandary
دوشنبه 29 شهریور 1389, 08:40 صبح
سلام دوستان
من یه متد دارم که ارایه دریافت می کنه و تعداد index های اون هم نباید از 89 تا بیشتر باشه . ولی خوب ممکنه تعداد آرگومانهایی که من دارم بیشتر از این تعداد باشه و متغیر، می خوام این تعداد شکسته شه و در هر بار همون 89 تا رو به متد ارسال کنه ، روش درست اینکار چیه ؟

اَرژنگ
دوشنبه 29 شهریور 1389, 09:36 صبح
سلام دوستان
من یه متد دارم که ارایه دریافت می کنه و تعداد index های اون هم نباید از 89 تا بیشتر باشه . ولی خوب ممکنه تعداد آرگومانهایی که من دارم بیشتر از این تعداد باشه و متغیر، می خوام این تعداد شکسته شه و در هر بار همون 89 تا رو به متد ارسال کنه ، روش درست اینکار چیه ؟
این آرایه چه چیزی را تمثیل میکند؟ به جایه کار با آرایه یک کلاس بنویس و در داخل کلاس با آرایه، لیست، هش تیبل و یا هر چیزه دیگری بخواهید کار کنید.
برایه دسترسی به عناصر از ایندکس پروپرتی و یا متدهایی که قبل از اضافه کردن به آرایه تعداد را بررسی میکنند و اضافه میکنند.
به شکل خلاصه : از انکپسولیشن که در بالا گفته شد استفاده کنید.

L_eskandary
دوشنبه 29 شهریور 1389, 11:56 صبح
ببینید فرض کنید من می خوام به 1000 تا شماره پیام بفرستم . ولی متدی که من می تونم استفاده کنم فقط در هر بار ارسال 80 شماره را رو دریافت می کنه حالا من می خوام این 1000 شماره رو تقسیم کنم تا در هر بار برا 80 تا از اونا پیام ارسال کنم . نمی دونم چطور باید داخل حلقه قرار بدم و یا هر کار دیگه ای که لازم برا اینکار انجام بدم ؟؟؟

اَرژنگ
دوشنبه 29 شهریور 1389, 12:27 عصر
ببینید فرض کنید من می خوام به 1000 تا شماره پیام بفرستم . ولی متدی که من می تونم استفاده کنم فقط در هر بار ارسال 80 شماره را رو دریافت می کنه حالا من می خوام این 1000 شماره رو تقسیم کنم تا در هر بار برا 80 تا از اونا پیام ارسال کنم . نمی دونم چطور باید داخل حلقه قرار بدم و یا هر کار دیگه ای که لازم برا اینکار انجام بدم ؟؟؟
به ۱۰۰۰ تا چی پیام بفرستی؟ راه حل را توضیح ندین، مشکل چیه؟ با چی کار میکنید؟ قراره که چی چکار کند که چه نتیجه‌ای حاصل بشد را توضیح بدید.

L_eskandary
دوشنبه 29 شهریور 1389, 13:08 عصر
من از وب سرویس مگفا استفاده می کنم برای ارسال پیام کوتاه . مگفا در هر بار 80 شماره رو از طریق یه آرایه میگیره و عملیات send رو انجام میده . ولی خوب من نمی تونم به کاربرم بگم که فقط 80 تا ارسال کنه و در واقع خودش عملیات تقسیم رو انجام بده . من می خوام کاربر که شماره هاش رو مشخص کرد این تعداد رو بگیرم و خودم به اینها رو در آرایه 80 تایی قرار بدم و ارسال کنم . من مشکلم تو تقسیم کردن و مشخص نمودن index‌ شماره ها برا ارسال هستش .

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

cheshm6k
دوشنبه 29 شهریور 1389, 13:17 عصر
سلام .



string[] s = { "1", "2", "3", "4" };
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < s.Length; i += 2)
{
string[] a = new string[2];
Array.Copy(s, i, a, 0, 2);
MessageBox.Show(a[0] + " " + a[1]);

}
}


موفق باشید.

L_eskandary
دوشنبه 29 شهریور 1389, 17:47 عصر
موفق باشید.
دوست عزيز من يه خرده :گیج: تشريف دارم خوب اين كدي كه شما نوشتين برا وقتي كه تعداد ورودي هاي آرايه معلوم باشه جواب ميده ولي من نتونستم برا تعداد متغير استفاده كنم ... تنها چيزي كه مهمه اينه كه من چطور بايد تو قسمت for مشخص كنم كه در هر بار تو []a‌ فقط 80 شماره رو بريزه و اينكه تعداد []a‌رو چطور مشخص كنم كه به ازاي هر كدام از اونها يك بار متدم رو فراخواني كنم ؟
خيلي ضروريه ...يكي كمكم كنه ...:افسرده:

cheshm6k
دوشنبه 29 شهریور 1389, 18:57 عصر
string[] s = { "1", "2", "3" };
privatevoid button1_Click(object sender, EventArgs e)
{
int i=0;
int aLength = 80;
while (i < s.Length)
{
if (i + 80 > s.Length) aLength = s.Length - i;
string[] a = newstring[aLength];
Array.Copy(s, i, a, 0, aLength);
WorkOnArray(a);
i += 80;
}
}
void WorkOnArray(string[] arr)
{
// 80
MessageBox.Show(arr.Length.ToString());
}