View Full Version : سوال: جدا کردن حروف و اعداد
hr0694
شنبه 29 مرداد 1390, 02:34 صبح
سلام
سورس برنامه ای را میخواهم که پنج تا Text روی Form داریم بدون دکمه کامند و بعد میخواهم چهار حرف (یا عدد) داخل Text1 هر کدامشان داخل Text2 و Text3 و Text4 و Text5بصورت جداگانه نمایش داده شوند
مثلاً در Text1 حروف (م د ت ل) نوشته شده بعد در Text2 اولین حرف یعنی (م) نمایش داده شود و در Text3 دومین حرف یعنی (د) نمایش داده شودو در در Text3سومین حرف یعنی (ت) نمایش داده شود و در Text4 چهارمین حرف یعنی (ل) نمایش داده شود
یا مثلاً در Text1 اعداد (2 16 15 5) نوشته شده بعد در Text2 اولین عدد یعنی (2) نمایش داده شود و در Text3 دومین عدد یعنی (16) نمایش داده شود و در Text3سومین عدد یعنی (15) نمایش داده شود و در Text4 چهارمین عدد یعنی (5) نمایش داده شود
ramzdar
شنبه 29 مرداد 1390, 07:04 صبح
بفرما
Private Function Tedaad(Text As String) As Byte 'tabe' baraye mohasebeye tedaade adaad
On Error GoTo er1
er1:
If Err.Number = 9 Then FLG = 1
For i = 0 To Len(Text)
If FLG <> 0 Then Exit For
p = Split(Text, " ")(i)
t = t + 1
Next
Tedaad = t
End Function
Private Sub Text1_Change()
On Error Resume Next
If Tedaad(Text1) > 4 Then 'baraye inke faghat 4 harf ya adad neveshte shavad
MsgBox "Excuse me"
SendKeys "{BACKSPACE}"
End If
Text2 = Split(Text1, " ")(0)
Text3 = Split(Text1, " ")(1)
Text4 = Split(Text1, " ")(2)
Text5 = Split(Text1, " ")(3)
End Sub
hr0694
شنبه 29 مرداد 1390, 08:52 صبح
این برنامه هم هر کاری کردم کار نمیکنه و ارور میده
setroyd
شنبه 29 مرداد 1390, 13:05 عصر
با کمترین کد برات نوشتم که بفهمی دانلود کن میفهمی
Private Sub Form_Load()
For a = 1 To Len(Text1.Text)
t(a) = Mid(Text1.Text, a, 1)
Next
End Sub
دانلود کن که ارایه بندیشو بفهمی
ramzdar
شنبه 29 مرداد 1390, 13:26 عصر
کد پست شماره 2 آپدیت شد.
اصلاً حواسم به اندیسهای تکست باکس ها نبود. ولی با این کار فقط 1 خط از کدنویسیمون کم مشه اما در تعداد بالاتر خیلی مفیده.
اما یه نکته:
کد شما کامل نیست. چون باید با هر فاصله بره سراغ تکست بعدی ولی نمیره.
اگه این کد جایگزین کد شما توی برنامه ای که ضمیمه کردین بشه همه چیز حله.
On Error Resume Next
For i = 1 To Len(Text1)
Text(i) = Split(Text1, " ")(i - 1)
Next
تابعی که نوشتم برای اینه که فقط اعداد بدست بیاد و برنامه کاملتر باشه. همینطور گفتم شاید ایشون(یا کسایی که تازه واردن) با تابع نویسی آشنا نباشن و خواستم با این موضوع آشنا بشن. (کدهای ابتدایی و چند منظوره جالبترن)
اون قسمت بالای کدهای اصلی هم مربوط به اینه که تعداد اعداد بیشتر از 4 تا نشه.
اگه اینا رو حذف کنیم میشه فقط همون چیزی که ایشون میخوان.
setroyd
شنبه 29 مرداد 1390, 13:41 عصر
اول دانلود کن بعد نظر بده !! این که من نوشتم خودش میندازه تو هر text از این به بعد مشکل منو شما نمیخواد بگیری شما کد خودت رو بزار. من بدم نمیاد کسی عیب برنامم رو بگه ولی نکه از خودش یه مشکل خیالی در بیاره مرسی
ramzdar
شنبه 29 مرداد 1390, 14:46 عصر
خب مشکل حل شد.
به این نتیجه رسیدیم که کد جناب setroyd ایراد داشت.
اینم سورس کامل و صحیح
قسمت اولش مربوط به جدا کردن حروف و اعداده و قسمت دومش هم مربوط به نمایش حروف و اعداده
محسن واژدی
شنبه 29 مرداد 1390, 17:00 عصر
سلام
سورس برنامه ای را میخواهم که پنج تا Text روی Form داریم بدون دکمه کامند و بعد میخواهم چهار حرف (یا عدد) داخل Text1 هر کدامشان داخل Text2 و Text3 و Text4 و Text5بصورت جداگانه نمایش داده شوند
مثلاً در Text1 حروف (م د ت ل) نوشته شده بعد در Text2 اولین حرف یعنی (م) نمایش داده شود و در Text3 دومین حرف یعنی (د) نمایش داده شودو در در Text3سومین حرف یعنی (ت) نمایش داده شود و در Text4 چهارمین حرف یعنی (ل) نمایش داده شود
یا مثلاً در Text1 اعداد (2 16 15 5) نوشته شده بعد در Text2 اولین عدد یعنی (2) نمایش داده شود و در Text3 دومین عدد یعنی (16) نمایش داده شود و در Text3سومین عدد یعنی (15) نمایش داده شود و در Text4 چهارمین عدد یعنی (5) نمایش داده شود
سلام علیکم
قبلا" سوالی را مشابه این مطرح کرده بودین، در همون سورسی که قبلا" ارائه شد میتوانید تغییراتی جزئی اعمال کنید که نتیجه بصورت دلخواهتان نمایش داده شود
hr0694
شنبه 29 مرداد 1390, 20:37 عصر
دستتان درد نکند در برنامه اول یعنی جدا کردن حروف و اعداد بمحض وارد کردن اولین حرف یا عدد در Text1 برنامه از این قسمت کد نویسی ایراد میگیرد
(p = Split(Text, " ")(i
و این ارور را میدهد
Run-time error '9':
Subscript out of range
در برنامه دوم یعنی نمایش حروف و اعداد بجای قرار دادن چهار Text2 چهار تا Text1 و Text2 و Text3 و Text4 قرار دهید که در Text5 نمایش داده میشوند
setroyd
شنبه 29 مرداد 1390, 21:37 عصر
خب مگه جوابش داده نشد !
ramzdar
یک شنبه 30 مرداد 1390, 12:17 عصر
اینم چیزی که شما میخواستین.
تا جایی که جا داشته از کدهای مختلف و ساده استفاده کردم که متوجه بشی چی نوشتم و با VB بیشتر آشنا بشی
موفق باشی.
hr0694
سه شنبه 01 شهریور 1390, 12:11 عصر
سلام
جنابramzdar (http://barnamenevis.org/member.php?151819-ramzdar)سورس برنامه ای را که در پست 11 برام گذاشتید در قسمت جدا کردن حروف و اعداد باز هم بمحض وارد کردن اولین حرف یا عدد در Text1 برنامه از این قسمت کد نویسی که در زیر نوشته شده ایراد میگیرد ولی برنامه دوم که برام نوشته اید بخوبی کار میکند
(p = Split(Text, " ")(i
و این ارور را میدهد
Run-time error '9':
Subscript out of range
ramzdar
سه شنبه 01 شهریور 1390, 13:04 عصر
کدهای توی فرم یک رو کلاً پاک کن و این رو جایگزین کن
Private Function Tedaad(Text As String) As Byte 'tabe' baraye mohasebeye tedaade adaad
On Error GoTo er1
If Err.Number = 9 Then FLG = 1
For i = 0 To Len(Text)
If FLG <> 0 Then Exit For
p = Split(Text, " ")(i)
t = t + 1
Next
er1:
Tedaad = t
End Function
Private Sub Label1_Click()
Form2.Show
Unload Me
End Sub
Private Sub Text1_Change()
On Error Resume Next
If Tedaad(Text1) > 4 Then 'baraye inke faghat 4 harf ya adad neveshte shavad
SendKeys "{BACKSPACE}"
DoEvents
MsgBox "Excuse me"
End If
Text2 = Split(Text1, " ")(0)
Text3 = Split(Text1, " ")(1)
Text4 = Split(Text1, " ")(2)
Text5 = Split(Text1, " ")(3)
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.