spalbs
شنبه 12 مهر 1393, 10:31 صبح
با سلام خدمت دوستان
دنبال سورسی واسه شمارش متن پیامک میگردم . مثلا یعداد صفحات اس ام ای و کاراکترهای باقی مونده.
چنتا الگوریتم شمارش رو دیدم ولی هرکاری کردم درست پیاده سازی نشد
مثلا این نمونه کد php که مال یکی از شرکتای ارسال پیامک انبود هست رو به جاوا تبدیل کردم ولی بازم توی شمارش مشکل داره و دقیق نیست :
function checkSMSLength(textarea, counterSpan, event) {
var text = textarea.value;
var ucs2 = text.search(/[^\x00-\x7D]/) != -1
var unitLength = ucs2 ? 70 : 160;
if (text.length > unitLength) {
if (ucs2)
unitLength = unitLength - 4;
else
unitLength = unitLength - 8;
}
var count = Math.max(Math.ceil(text.length / unitLength), 1);
counterSpan.innerHTML = (unitLength * count - text.length) + '(' + count')';
}
واین هم کدی که خودم از روی کد php به جاوا تبدیلش کردم :
String text =EtMsMessage.getText().toString();
Boolean ucs2=false;
for (char character : text.toCharArray())
{
if (character >= 0x600 && character <= 0x6ff)
ucs2=true;
if (character >= 0x750 && character <= 0x77f)
ucs2=true;
if (character >= 0xfb50 && character <= 0xfc3f)
ucs2=true;
if (character >= 0xfe70 && character <= 0xfefc)
ucs2=true;
}
int unitLength=ucs2 ? 70 : 160;
if (text.length > unitLength)
{
if (ucs2)
unitLength = unitLength - 4;
else
unitLength = unitLength - 8;
}
intcount = (int)Math.max(Math.ceil(text.length / unitLength), 1);
TvMS.setText("("+Integer.toString(count)+")"+Integer.toString(unitLength * count - text.length));
ولی هنوزم مشکل داره توی شمارش و دقیق عمل نمیکنه.
دوستان کسی میتونه کمکی کنه تو این زمینه؟
واینکه آیا سورسی مجود هست واسه کانتر متن پیامک؟
اینم لینک سوالم توی استک آورفلو (http://stackoverflow.com/questions/26074310/sms-text-message-counting)
باتشکر فراوان
دنبال سورسی واسه شمارش متن پیامک میگردم . مثلا یعداد صفحات اس ام ای و کاراکترهای باقی مونده.
چنتا الگوریتم شمارش رو دیدم ولی هرکاری کردم درست پیاده سازی نشد
مثلا این نمونه کد php که مال یکی از شرکتای ارسال پیامک انبود هست رو به جاوا تبدیل کردم ولی بازم توی شمارش مشکل داره و دقیق نیست :
function checkSMSLength(textarea, counterSpan, event) {
var text = textarea.value;
var ucs2 = text.search(/[^\x00-\x7D]/) != -1
var unitLength = ucs2 ? 70 : 160;
if (text.length > unitLength) {
if (ucs2)
unitLength = unitLength - 4;
else
unitLength = unitLength - 8;
}
var count = Math.max(Math.ceil(text.length / unitLength), 1);
counterSpan.innerHTML = (unitLength * count - text.length) + '(' + count')';
}
واین هم کدی که خودم از روی کد php به جاوا تبدیلش کردم :
String text =EtMsMessage.getText().toString();
Boolean ucs2=false;
for (char character : text.toCharArray())
{
if (character >= 0x600 && character <= 0x6ff)
ucs2=true;
if (character >= 0x750 && character <= 0x77f)
ucs2=true;
if (character >= 0xfb50 && character <= 0xfc3f)
ucs2=true;
if (character >= 0xfe70 && character <= 0xfefc)
ucs2=true;
}
int unitLength=ucs2 ? 70 : 160;
if (text.length > unitLength)
{
if (ucs2)
unitLength = unitLength - 4;
else
unitLength = unitLength - 8;
}
intcount = (int)Math.max(Math.ceil(text.length / unitLength), 1);
TvMS.setText("("+Integer.toString(count)+")"+Integer.toString(unitLength * count - text.length));
ولی هنوزم مشکل داره توی شمارش و دقیق عمل نمیکنه.
دوستان کسی میتونه کمکی کنه تو این زمینه؟
واینکه آیا سورسی مجود هست واسه کانتر متن پیامک؟
اینم لینک سوالم توی استک آورفلو (http://stackoverflow.com/questions/26074310/sms-text-message-counting)
باتشکر فراوان