PDA

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



sinavb
شنبه 28 اسفند 1389, 00:06 صبح
سلام دوستان من می خوام توی لیبیل تعداد کاراکترهای درون یک تکس باکس رو نشون بدم و هر 60 تا کاراکتر رو یه واحد بدونه
مثلا :

60(1)
61(2)
.
.
.
120 (2)
125(3)

mohammadian7
شنبه 28 اسفند 1389, 00:26 صبح
سلام
این کد به c# است فکر میکنم باید از len برای بدست آوردن تعداد کاراکتر در vb استفاده کنی

txtNumChar.Text = txtMessage.TextLength.ToString();
int a;
a = Convert.ToInt32(txtNumChar.Text);
a /= 60;
txtNumSms.Text = a.ToString();
int b;
b = a;
b += 1;
b *= 60;
txtMax.Text = b.ToString();

knight-rak
شنبه 28 اسفند 1389, 00:27 صبح
درست متوجه نشدم چی میخوای
اما اگر میخوای تعداد کاراکتر ها رو بدست بیاری از تابع len() برای اینکار استفاده میشه

و برای جدا کردن هر کدوم از کاراکتر ها درون یه تکستباکس و قرار دادنش توی یه آرایه یا هر چیز دیگه از تابع mid() استفاده میشه

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

Slytherin
شنبه 28 اسفند 1389, 00:45 صبح
همان طوری که دوستان گفتند با Len تعداد کاراکتر ها را به دست بیاوید و سپس آن را تقسیم بر 60 تقسیم صحیح (بدون باقی مانده) کنید و جواب را به علاوه 1 کنید.

knight-rak
شنبه 28 اسفند 1389, 01:01 صبح
میشه قسمت دوم رو یکم بشکافین و بیشتر توضیح بدید » شما میخواین که هر 60 تا رو سیستم 1 بدونه ؟ میتونم بپرسم واسه چه کاری میخواید ؟

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

farzinf
شنبه 28 اسفند 1389, 08:55 صبح
سلام دوست عزیز از تابع Len استفاده کنید تعداد کاراکتر ها را بر می گرداند و بعد یک بار تعداد را تقسیم صحیح کنید بر 60 که تعداد واحد ها را بدهد (هر 60 کارکتر یک واحد ) و اگر می خواهید تعداد کارکتر هایی که باقی مانده و به 60 نرسیده که یک واحد شوند را بدست آورد Mod (باقی مانده ) بگیرید

M.T.P
شنبه 28 اسفند 1389, 10:52 صبح
Function ChrUnit() As Long
ChrUnit = Len(Text1.Text) \ 60
If Not Len(Text1.Text) Mod 60 = 0 Then
ChrUnit = ChrUnit + 1
End If
End Function

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

sinavb
جمعه 05 فروردین 1390, 09:04 صبح
ممنون دوست عزیز درست می فرمایید فارسی هر 70 تاست اصلا حواسم نبود برای سیستم ارسال اس ام اس می خوام
می خوام بر اساس متنی که مشتری می خواد براش تبلیغات بشه محاسبه کنه چند تا اس ام اس میشه و پولش رو حساب کنه

sinavb
جمعه 05 فروردین 1390, 09:09 صبح
فقط دوست عزیز این کد بالا رو یذره توضیح میدی که چکارا باید باهاش بکنم مجا قرارش بدم

javadt
جمعه 05 فروردین 1390, 13:34 عصر
تابع بالا برات محاسبه می کنه و برات تعداد رو بر می گردونه
فقط اگر برای اس ام اس می خوای 60 رو به 70 تغییر بده و Text1 هم همون تکستی هست که متن اس ام اس رو توش می نویسند
Private Sub Command1_Click()
MsgBox ChrUnit
End Sub

returnx
جمعه 05 فروردین 1390, 17:03 عصر
من یک تابع نوشتم کار تابع Len رو انجام میده گفتم شاید شما هم بخواهید بدونید تابع Len چطور کارکتر ها رو میشمره ، برای همین براتون گذاشتم:

Function mylen(stri As String) As Integer
stri = stri & "$"
Dim txt_end As Boolean
Dim counter As Integer
Dim token As String * 1
counter = 1
While txt_end <> True
token = Mid(stri, counter, 1)
If token = "$" Then
txt_end = True
Else
counter = counter + 1
End If
Wend
mylen = counter - 1
End Function

sinavb
جمعه 05 فروردین 1390, 21:45 عصر
Function ChrUnit() As Long
ChrUnit = Len(Text1.Text) \ 60
If Not Len(Text1.Text) Mod 60 = 0 Then
ChrUnit = ChrUnit + 1
End If
End Function

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

_behnam_
جمعه 05 فروردین 1390, 23:13 عصر
نه من تست کردم کد آقای M.T.Pدرسته

sinavb
جمعه 05 فروردین 1390, 23:29 عصر
والا من کد ایشون رو توی General کپی کردم بعدم توی msg box فراخوانیش کردم فقط عدد 1 رو نشون می ده

M.T.P
شنبه 06 فروردین 1390, 12:07 عصر
دوست من درسته.
این نمونه دقیقا مشابه کاراکتر شمار نوکیا هست.
در قالب پروژه:

sinavb
یک شنبه 07 فروردین 1390, 06:55 صبح
ممنون دوست عزیز