שאלה בנוגע לזיהוי input

כוכב1001

New member
שאלה בנוגע לזיהוי input

שלום, אני מכין טופס ובו TEXTBOXES אשר בהם צריך להכניס פרטים. לאחר הכנסת הפרטים, מתבצעת לחיצה על כפתור ואז ה-INPUT צריך להיבדק. שאלתי: איזו פעולה/פקודות צריך להכניס כדי לוודא שהוכנסו רק אותיות בחלק מהמשבצות או רק ספרות בחלק אחר? ניסיתי בעזרת VAL אך ללא תוצאות. כיצד ניתן להמיר את המידע הנכנס ל-ASCII ואז להשוות? תודה מראש על עזרתכם.
 

lj101

New member
במאפיין keypress אתה יכול לבדוק

כמה תווים הוקלדו במידה אם ב-5 הראשונים מותר להקליד רק אותיות אז תסנן ע"י keyascii ואם מהתוו ה-6 מותר להקיש רק מספרים אז תעשה את אותה הפעולה רק עם סינון שונה טיפה. תשתמש ב-select case
select case len(text1.text) case =< 5 קוד case > = 6 קוד end select​
 

כוכב1001

New member
../images/Emo51.gif-הבהרה קטנה...

מכל BOX אמור להתקבל סוג נתונים יחיד - ספרות או אותיות. אז כרגע יש לי נתון ב-Text1.text. אני יודע שצריך לבדוק שהנתונים בתחום 65-90 או 97-122. מה פורמט הפקודה או אופן השימוש בASCII? תודה
 

מס1

New member
הכי פשוט

אם זה אותיות תבדוק אם זה בין A ל Z או בין a ל z אם זה ספרות אז בדיקה בין 0 ל 9 וכמובן לגבי ספרות תשתמש בפונקציה NUMERIC
 

כוכב1001

New member
אני יודע את זה - תודה. הבעיה היא

שאינני מכיר את הפקודה הבודקת את הנתון הזה ואת הפורמט שלה. אסביר שוב: ב-text1.text יש לי רצף של תוים. מה הפקודה והפורמט שלה שיוודא שהרצף הזה הוא אותיות בלבד? התנאי הוא (X>64 AND X<91) OR (X<96 AND X<123) השאלה היא, איך אני מקבל את ה-X? שוב תודה.
 

מס1

New member
אפשר בלולאה עד אורך המחרוזת

for i=1 to len(text1.text) if.... next i​
מאוד פשטני אני אחפש במוצ"ש משהו משופר ב MSDN שבת שלום
 

בסג

New member
משו כזה:

Private Sub Text1_Change() dim x As String, c as string dim i as integer x = "" for i=1 to len(Text1.Text) c = mid(Text1.Text, i, 1) If ((c >= "a") and (c <= "z")) or ((c >= "A") and (c <= "Z")) Then x = x & mid(Text1.Text, i, 1) End If next Text1.Text = x End Sub​
 

lj101

New member
קבל רוטינה פשוטה מאוד שבודקת אם

אלו תוים הוקלדו, תוכל לשנות את הפרוצדוקה לפי הצורך :
Public Sub OnlyNum(KeyAscii) Dim str As String, I As Integer str = "0123456789" + Chr(8) I = InStr(str, Chr(KeyAscii)) If I = 0 Then KeyAscii = 0 End Sub​
 

MaD-d0g

New member
עזוב סתם מסבכים אותך כאן...

Private Sub TxtPaymentAmount_KeyPress(KeyAscii As Integer) If (KeyAscii < 46 Or KeyAscii > 57 Or KeyAscii = 47) And KeyAscii > 32 Then KeyAscii = 0 End Sub​
אבל החסרון בשיטה הזאת היא שהיא בודקת תוך כדי... אם מישהו יכניס נתונים ע"י הדבקה זה לא יבדוק... לכן כדאי לבדוק שוב בשמירה של הנתונים אגב, הכנסתי את התשובה הזאת ל FAQ
 

כוכב1001

New member
חבר'ה, כל הכבוד ../images/Emo45.gif תודה. אני אנסה

ואראה מה הכי טוב. אחלה פורום יש לכם כאן!!! שבת שלום
 
למעלה