PDA

View Full Version : کار با اعداد در تکست باکس vb.net



ILYA20
چهارشنبه 11 بهمن 1396, 21:44 عصر
با سلام و درود خدمت دوستان

یک تکست باکس و یک دکمه رو در نظر بگیرید

تکست باکس بیشتر از 16 رقم اعداد رو قبول نکنه (فقط به اعداد فیلتر بشه جز اعداد چیزی قبول نکنه)

و اینکه ما در دکمه تعریف کنیم اگر اعداد بیشتر یا کمتر از 16 تا بود یک خروجی به کاربر بده (مثلا یه مسیج باکس ) و اگر 16 تا بود دستورمون رو اجرا کنه

دستور هم اینه مثلا شما این اعداد رو در نظر بگیرید 1234567891234567 این تعداد 16 تا اعداد هست مثلا تعریف کنیم اگر در هفتمین و هشتمین نوشته مثلا شماره های 9 8 بود یک خروجی نشون بده یا 01 بود یک دستوری که تعریف میکنیم اونو نشون بده

راهنمایی لطفا :قلب:

sehm67
چهارشنبه 11 بهمن 1396, 22:19 عصر
تکست باکس بیشتر از 16 رقم اعداد رو قبول نکنه (فقط به اعداد فیلتر بشه جز اعداد چیزی قبول نکنه)

از قسمت properties تکست باکس مورد نظر
Maxlength را مساوی 16 و یا هر عددی ک مد نظرتونه وارد نمایید.


تکست باکس فقط اعداد را قبول میکنه


Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Asc(e.KeyChar) <> 8 Then
If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
e.Handled = True
End If
End If
End Sub




دستور هم اینه مثلا شما این اعداد رو در نظر بگیرید 1234567891234567 این تعداد 16 تا اعداد هست مثلا تعریف کنیم اگر در هفتمین و هشتمین نوشته مثلا شماره های 9 8 بود یک خروجی نشون بده یا 01 بود یک دستوری که تعریف میکنیم اونو نشون بده


از دستور mid استفاده نمایید

ILYA20
چهارشنبه 11 بهمن 1396, 22:57 عصر
از قسمت properties تکست باکس مورد نظر
Maxlength را مساوی 16 و یا هر عددی ک مد نظرتونه وارد نمایید.


تکست باکس فقط اعداد را قبول میکنه


Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Asc(e.KeyChar) <> 8 Then
If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
e.Handled = True
End If
End If
End Sub




از دستور mid استفاده نمایید

سپاسگذارم

در خصوص دستور mid برای نیاز ما میتونید کدی قرار بدید

sehm67
چهارشنبه 11 بهمن 1396, 23:08 عصر
سپاسگذارم

در خصوص دستور mid برای نیاز ما میتونید کدی قرار بدید

خواهش. برای تشکر و سپاس از دکمه تشکر کردن استفاده نمایید.

بله میشه ولی خواستم خودتون این کد رو بنویسید برای تمرین

ILYA20
چهارشنبه 11 بهمن 1396, 23:18 عصر
خواهش. برای تشکر و سپاس از دکمه تشکر کردن استفاده نمایید.

بله میشه ولی خواستم خودتون این کد رو بنویسید برای تمرین

برای درک بهتر نیاز به دستور دارم متاسفانه جستجو های بنده نتیجه ای نداشت به همین خاطرمطرح کردم

sehm67
چهارشنبه 11 بهمن 1396, 23:32 عصر
برای درک بهتر نیاز به دستور دارم متاسفانه جستجو های بنده نتیجه ای نداشت به همین خاطرمطرح کردم


Dim i as integer
i = 123456
Msgbox(Mid(i,1,2))

sehm67
چهارشنبه 11 بهمن 1396, 23:34 عصر
برای درک بهتر نیاز به دستور دارم متاسفانه جستجو های بنده نتیجه ای نداشت به همین خاطرمطرح کردم


Dim i as integer
i = 123456
Msgbox(Mid(i,1,2))

مفهوم عدد 1 اینه که از اولین کاراکتر شروع میکنه به خوندن و تا 2 کاراکتر به جلو میره و عدد مورد نظر رو بهتون برمیگردونه
اگه متوجه نشدید بگید تا بیشتر توضیح بدم
موفق باشید

ILYA20
چهارشنبه 11 بهمن 1396, 23:44 عصر
Dim i as integer
i = 123456
Msgbox(Mid(i,1,2))

مفهوم عدد 1 اینه که از اولین کاراکتر شروع میکنه به خوندن و تا 2 کاراکتر به جلو میره و عدد مورد نظر رو بهتون برمیگردونه
اگه متوجه نشدید بگید تا بیشتر توضیح بدم
موفق باشید

منظور من دستور شرطی بود که اگر اعداد هفتمی به عنوان مثال 1 بود و هشتمی 0 یک خروجی نشون بده در غیر ایصورت اگر هفتی 2 بود و هشتمی 5 یک خروجی دیگه

sehm67
پنج شنبه 12 بهمن 1396, 00:08 صبح
منظور من دستور شرطی بود که اگر اعداد هفتمی به عنوان مثال 1 بود و هشتمی 0 یک خروجی نشون بده در غیر ایصورت اگر هفتی 2 بود و هشتمی 5 یک خروجی دیگه

میتونید همین کد رو بصورت شرطی بنویسید
تو بگید که اگه عدد هفتم مساوی 1 بود و هشتم صفر بود بهتون پیغام بده
میتونید از چند Mid استفاده کنید
اگه Mid مساوی 1 بود خروجی بده صفر
اگه Mid دوم مساوی 2 بود خروجی بده 1
کمی تلاش کنید به نتیجه میرسید

ILYA20
پنج شنبه 12 بهمن 1396, 18:42 عصر
میتونید همین کد رو بصورت شرطی بنویسید
تو بگید که اگه عدد هفتم مساوی 1 بود و هشتم صفر بود بهتون پیغام بده
میتونید از چند Mid استفاده کنید
اگه Mid مساوی 1 بود خروجی بده صفر
اگه Mid دوم مساوی 2 بود خروجی بده 1
کمی تلاش کنید به نتیجه میرسید

درود دوباره


دستوری که استفاده کردیم


Dim num As Long
num = textbox1.Text
Dim out As String
out = Mid(num, 7, 8)
If out = "05" Or out = "50" Then
OtLog.AppendText(Environment.NewLine & "zero an five"))
ElseIf out = "08" Or out = "80" Then
OtLog.AppendText(Environment.NewLine & "zero and eight")
end if



مثلا اگر در تکست باکس اعداد 123456011234567 رو وارد کنیم خروجیمون "011234567" هست در حالی که ما نیاز داریم فقط خروجیمون هفتمین و هشتمین اعداد وارد شده باشه یعنی "01"

ILYA20
پنج شنبه 12 بهمن 1396, 22:04 عصر
متاسفانه کلا درست کار نمیکنه من درست تست نکرده بودم این دستور مثلا بعد از هفتمین عدد هر چی هست نشون میده تا اخر در صورتی که ما نیاز داریم فقط هفت و هشت رو نشون بده

ILYA20
جمعه 13 بهمن 1396, 10:07 صبح
دوستان عزیز نظری ندارند ؟

ILYA20
جمعه 13 بهمن 1396, 10:49 صبح
مشکل حل شد با دستور زیر :



Dim out = textbox1.Text.Substring(6, 2)
MessageBox.Show(out)


:چشمک: