PDA

View Full Version : بدست آوردن شماره های موجود در یک بازه در ارسال پیامک انبوه



hadisadaghatmehr
دوشنبه 05 فروردین 1392, 12:21 عصر
با سلام
بنده مشغول نوشتن یه برنامه تحت ویندوز برای ارسال پیامک هستم که از وب سرویس یکی از شرکتها برای اینکار استفاده میکنم(در نحوه ارسال مشکلی نیست)
سوال بنده اینجاست که وقتی میخوام پیامک به صورت رنجی یا انبوه بفرستم(نه گروهی)چطوری شماره های موجود در یک بازه رو میتونم در بیارم؟مثلا کل شماره های موجود در بازه(09140000001 تا 09141001556)
خیلی ممنون میشم راهنمایی بفرمایید.
با تشکر

RED-C0DE
دوشنبه 05 فروردین 1392, 18:22 عصر
2 روش من پیشنهاد می دم ک شبیه ب هم هستن :


private void button1_Click(object sender, EventArgs e)
{
string n1 = "09140000001";
string n2 = "09141001556";

var range1 = getNumbersInRange(n1, n2);

var range2 = getNumbersInRange2(n1, n2).ToList();
}



private static List<string> getNumbersInRange(string pNumber1, string pNumber2)
{
var numbersInRange = new List<string>();

var n1 = long.Parse(pNumber1);
var n2 = long.Parse(pNumber2);

for (; n1 <= n2; n1++)
{
numbersInRange.Add("0" + n1);
}

return numbersInRange;
}

private static IEnumerable<long> getNumbersInRange2(string pNumber1, string pNumber2)
{
var n1 = long.Parse(pNumber1);
var n2 = long.Parse(pNumber2);

for (; n1 <= n2; n1++)
{
yield return n1;
}
}


2ومی بیشتر شاید بشه روش مانور داد
بسته ب نیاز ، خودتون تغییرات رو بدین اگه تصمیم گرفتین از این شیوه استفاده کنید
البته اگه رنج بالا بخواین در حافظه تولید و نگهداری کنید مواظب مصرف حافظه و احتمالا کندی کار باشید (اگه براتون مهمه)

با دونستن این موضوع ک هر متغیر از نوع Long 8 بایت فضا می گیره و ی حساب سرانگشتی ک بکنین می تونین مدیریت کنین کارتون رو یا فرضا بصورت تکه تکه رنج های عددی رو نگه دارید در حافظه نه بصورت یک-تکه

mhsmity
دوشنبه 05 فروردین 1392, 18:54 عصر
سلام کدهای جالبی داشتین میشه این قسمت هارو توضیح بدین ؟ MHSmity


2
IEnumerable<long>
yield return n1;

RED-C0DE
دوشنبه 05 فروردین 1392, 19:18 عصر
در مورد ساختارهای Generic در .net و C# و بعدش کلمه کلیدی yield و بعدش ربط این 2 مفهوم ب هم ، مطلب بخونید ... دستتون می یاد کم کم
http://www.dotnetperls.com/yield