PDA

View Full Version : سوال: TextBox OnkeyDown / Onkey Up و بررسی Encoding‌ کاراکتر وارد شده و انجام محاسبات



L_eskandary
شنبه 13 آذر 1389, 18:25 عصر
با سلام خدمت دوستام مهندسم
من باید متنی که در textbox‌نوشته میشه رو بررسی کنم و با توجه به اینکه فارسی یا انگلیسی هستش از طریق یکی از دو فرمول زیر تعداد صفحات رو مشخص کنم :
برا فارسی :


public int SmsPageNumFa(string SMSBody)
{

int RealSmsPNum;
int RealSmsLength;
int udh;
double Rawpagenum;
int roundpage;

Rawpagenum = Convert.ToDouble(SMSBody.Length) / 70;

roundpage = (int)Math.Ceiling(Rawpagenum);

if (roundpage == 1)
RealSmsPNum = 1;
else
{
Rawpagenum = Convert.ToDouble(SMSBody.Length) / 67;
udh = Convert.ToInt32(roundpage * 3);
RealSmsLength = SMSBody.Length + udh;
RealSmsPNum = (int)Math.Ceiling(Convert.ToDouble(RealSmsLength) / 70);
}
return RealSmsPNum;

}


برا انگلیسی :


public int SmsPageNumEn(string SMSBody)
{
int udh;
int RealSmsLength;
int RealSmsPNum;
double Rawpagenum;
int roundpage;

Rawpagenum = Convert.ToDouble(SMSBody.Length) / 160;

roundpage = (int)Math.Ceiling(Rawpagenum);

if (roundpage == 1)
RealSmsPNum = 1;
else
{
Rawpagenum = Convert.ToDouble(SMSBody.Length) / 153;
udh = Convert.ToInt32(roundpage * 7);
RealSmsLength = SMSBody.Length + udh;
RealSmsPNum = (int)Math.Ceiling(Convert.ToDouble(RealSmsLength) / 160);
}

return RealSmsPNum;

}


البته من متد مربوط به تشخص وجود کاراکتر فارسی رو هم نوشتم و اگه حتی یه کاراکتر فارسی هم داخل یه متن انگلیسی درج بشه با فرمول فارسی تعداد صفحات مشخص میشه .
حالا مسئله اینه که چطور می تونم این توابع رو تو TextBox OnkeyDown / Onkey Up استفاده کنم و البته قبلش چطور وجود کاراکتر فارسی رو تشخیص بدم :
متد مربوط به بررسی وجود کاراکتر فارسی :


public int IsFarsi(string str)
{
// return 1 for farsi and 0 for english

foreach (char item in str)
{
int i = Convert.ToInt32(item);
switch (i)
{
case 1632:
return 1;

case 1633: return 1;

case 1634: return 1;

case 1635: return 1;

case 1636: return 1;

case 1781: return 1;

case 1638: return 1;

case 1639: return 1;

case 1640: return 1;

case 1641: return 1;

case 1570: return 1;

case 1575: return 1;

case 1576: return 1;

case 1662: return 1;

case 1578: return 1;

case 1579: return 1;

case 1580: return 1;

case 1670: return 1;

case 1581: return 1;

case 1582: return 1;

case 1583: return 1;

case 1584: return 1;

case 1585: return 1;

case 1586: return 1;

case 1688: return 1;

case 1587: return 1;

case 1588: return 1;

case 1589: return 1;

case 1590: return 1;

case 1591: return 1;

case 1592: return 1;

case 1593: return 1;

case 1594: return 1;

case 1601: return 1;

case 1602: return 1;

case 1711: return 1;

case 1705: return 1;

case 1604: return 1;

case 1606: return 1;

case 1605: return 1;

case 1608: return 1;

case 1607: return 1;

case 1740: return 1;

case 1574: return 1;

default:
break;
;
}
}
return 0;
}



از توجه همه دوستان ممنون :تشویق: