Fa جدا کردن اعداد به وسیله ممیز در مولتی مدیا بیلدر

mojtabafuladii

New Member
سلام به همگی
چجوری میشه اعدادی که در EditBox به دست میاد را ممیز دار کرد

مثال
200000 رو اینجوری نمایش بده
200.000

ممنون میشم کمکم کنید
لطفا با ذکر مثال
 

the_king

مدیرکل انجمن
سلام به همگی
چجوری میشه اعدادی که در EditBox به دست میاد را ممیز دار کرد

مثال
200000 رو اینجوری نمایش بده
200.000

ممنون میشم کمکم کنید
لطفا با ذکر مثال
کد:
s$ = EditBox$
t$ = ''
l = LEN(s$)
For i = 1 To Infinity
  If (l = 0) Then
    Break()
  End
  c$ = StrGet(s$,1)
  ch = ORD(c$)
  If ((ch=>48) & (ch<=57)) Then
    t$ = t$ + c$
  End
  l = l - 1
  s$ = StrCopy(s$,2,l)
Next i
l = LEN(t$)
n = INT((l - 1) / 3)
If (n > 0) Then
  u$ = ','
  For i = 1 To n
    p = l - 3 * i + 1
    t$ = StrIns(t$,u$,p)
  Next i
End
LoadText("EditBox","t$")
اگر لازم باشه مقدار داخل اون EditBox رو به عدد صحیح تبدیل کنید، بخاطر اون ممیز ها دیگه ()VAL به تنهایی بکارتون نمیاد و باید اول ممیز ها رو حذف کنید :
کد:
s$ = EditBox$
t$ = ''
l = LEN(s$)
For i = 1 To Infinity
  If (l = 0) Then
    Break()
  End
  c$ = StrGet(s$,1)
  ch = ORD(c$)
  If ((ch=>48) & (ch<=57)) Then
    t$ = t$ + c$
  End
  l = l - 1
  s$ = StrCopy(s$,2,l)
Next i
n = VAL(t$)
Message("","n")
 

mojtabafuladii

New Member
کد:
s$ = EditBox$
t$ = ''
l = LEN(s$)
For i = 1 To Infinity
  If (l = 0) Then
    Break()
  End
  c$ = StrGet(s$,1)
  ch = ORD(c$)
  If ((ch=>48) & (ch<=57)) Then
    t$ = t$ + c$
  End
  l = l - 1
  s$ = StrCopy(s$,2,l)
Next i
l = LEN(t$)
n = INT((l - 1) / 3)
If (n > 0) Then
  u$ = ','
  For i = 1 To n
    p = l - 3 * i + 1
    t$ = StrIns(t$,u$,p)
  Next i
End
LoadText("EditBox","t$")
اگر لازم باشه مقدار داخل اون EditBox رو به عدد صحیح تبدیل کنید، بخاطر اون ممیز ها دیگه ()VAL به تنهایی بکارتون نمیاد و باید اول ممیز ها رو حذف کنید :
کد:
s$ = EditBox$
t$ = ''
l = LEN(s$)
For i = 1 To Infinity
  If (l = 0) Then
    Break()
  End
  c$ = StrGet(s$,1)
  ch = ORD(c$)
  If ((ch=>48) & (ch<=57)) Then
    t$ = t$ + c$
  End
  l = l - 1
  s$ = StrCopy(s$,2,l)
Next i
n = VAL(t$)
Message("","n")
سلام
دستتون درد نکنه واقعا کارم راه افتاد
بی نهایت سپاسگزارم
 

mojtabafuladii

New Member
کد:
s$ = EditBox$
t$ = ''
l = LEN(s$)
For i = 1 To Infinity
  If (l = 0) Then
    Break()
  End
  c$ = StrGet(s$,1)
  ch = ORD(c$)
  If ((ch=>48) & (ch<=57)) Then
    t$ = t$ + c$
  End
  l = l - 1
  s$ = StrCopy(s$,2,l)
Next i
l = LEN(t$)
n = INT((l - 1) / 3)
If (n > 0) Then
  u$ = ','
  For i = 1 To n
    p = l - 3 * i + 1
    t$ = StrIns(t$,u$,p)
  Next i
End
LoadText("EditBox","t$")
اگر لازم باشه مقدار داخل اون EditBox رو به عدد صحیح تبدیل کنید، بخاطر اون ممیز ها دیگه ()VAL به تنهایی بکارتون نمیاد و باید اول ممیز ها رو حذف کنید :
کد:
s$ = EditBox$
t$ = ''
l = LEN(s$)
For i = 1 To Infinity
  If (l = 0) Then
    Break()
  End
  c$ = StrGet(s$,1)
  ch = ORD(c$)
  If ((ch=>48) & (ch<=57)) Then
    t$ = t$ + c$
  End
  l = l - 1
  s$ = StrCopy(s$,2,l)
Next i
n = VAL(t$)
Message("","n")
ببخشید مجدد مزاحم شدم
من از فرمول شما برای تعدادی editbox به صورت تک تک در یک script استفاده کردم
خیلی سرعت کار پایین میاد
آیا فرمولی می شه استفاده کرد که همه رو در بر بگیره تا از سرعت بالایی برخوردار باشه؟
 

the_king

مدیرکل انجمن
ببخشید مجدد مزاحم شدم
من از فرمول شما برای تعدادی editbox به صورت تک تک در یک script استفاده کردم
خیلی سرعت کار پایین میاد
آیا فرمولی می شه استفاده کرد که همه رو در بر بگیره تا از سرعت بالایی برخوردار باشه؟
اگه بخواهید سرعت زیاد بشه باید از MMB استفاده نکنید، یعنی کدتون رو با پلاگین انجام بدید.
اول باید GroupNum.zip رو دانلود کنید و پلاگین رو از فایل فشرده zip خارج کنید و کنار پروژه MMB تون قرار بدید.
بعد داخل محیط MMB در منوی ...Project > Embedded Files اون فایل dll پلاگین رو Add می کنید :
01.jpg
و یک Plugin برای اون فایل dll روی Page تون قرار می دهید (منوی Create > Plug-In) که مسیر فایلش با <Embedded> شروع میشه :
02.jpg
و یکبار پروژه MMB تون رو میبندید و مجددا باز می کنید تا مسیر پلاگین به درستی فعال بشه و مشخصات پلاگین رو نشون بده.
الان باید مشخصات هر کدوم از EditBox هاتون رو دونه دونه چک کنید که اگر اسم شون EditBox1 باشه، حتما در Output اسم متغیر String همنام EditBox1$ باشه :
03.jpg
حالا می توانید از پلاگین کمک بگیرید، دقت کنید که بعد از اسم آخرین EditBox هم اون کاراکتر / لازمه :
کد:
a$ = 'EditBox/EditBox1/EditBox2/'
c = GetArrayNum(a$,/)
For i = 1 To c
  s$ = GetArrayItem(a$,/,i)+'$'
  LoadText("t$","STRING:s$")
  PluginSet("PlugIn","t$")
  PluginRun("PlugIn","GroupNum")
  PluginGet("PlugIn","t$")
  s$ = GetArrayItem(a$,/,i)
  LoadText("s$","STRING:t$")
Next i
برای تبدیل مقدار داخل EditBox ها به عدد هم همین پلاگین میتونه بکار بره :
کد:
LoadText("t$","EditBox1$")
PluginSet("PlugIn","t$")
PluginRun("PlugIn","GroupNum")
PluginGet("PlugIn","n")
Message("","n")
 

پیوست ها

جدیدترین ارسال ها

بالا