با سلام،
از دوستان کمک می خواستم شاید سوالم خیلی ابتدای باشه ، من نیاز به برنامه ای دارم که یک صفحه شامل حروف و اعداد رو از کاربر بگیره و فقط اعداد 11 رقمی رو چاپ کند.
به عنوان مثال :
شماره همراه:09398092005
شماره های تماس:32764580
ساعات کاری:7:30-13/16-21
شماره همراه:09151134575
شماره های تماس:36235920-6235919
ساعات کاری:6:45-14:45
....
متن بالارا از کاربر بگیرید و اعداد 11 رقمی رو به صورت زیر چاپ کند.
09398092005
09151134575
من از برنامه زیر استفاده کردم و مشگلم این بود تمام اعداد را پشت سرهم چاپ می کرد.
Private Sub Command1_Click()
For i = 1 To Len(Text1)
x = Mid(Text1, i, 1)
a = IsNumeric(x)
If a Then
Text2 = Text2 & x
Else
Text3 = Text3 & x
End If
Next i
راهنمای که ازتون می خوام اینه چی کار کنم فقط اعداد 11 رقمی به صورت زیر هم چاپ شه.
با سپاس
(:
(۱۴-شهریور-۱۳۹۳, ۱۷:۳۹:۴۷)arviiin نوشته است: [ -> ]با سلام،
از دوستان کمک می خواستم شاید سوالم خیلی ابتدای باشه ، من نیاز به برنامه ای دارم که یک صفحه شامل حروف و اعداد رو از کاربر بگیره و فقط اعداد 11 رقمی رو چاپ کند.
به عنوان مثال :
شماره همراه:09398092005
شماره های تماس:32764580
ساعات کاری:7:30-13/16-21
شماره همراه:09151134575
شماره های تماس:36235920-6235919
ساعات کاری:6:45-14:45
....
متن بالارا از کاربر بگیرید و اعداد 11 رقمی رو به صورت زیر چاپ کند.
09398092005
09151134575
من از برنامه زیر استفاده کردم و مشگلم این بود تمام اعداد را پشت سرهم چاپ می کرد.
Private Sub Command1_Click()
For i = 1 To Len(Text1)
x = Mid(Text1, i, 1)
a = IsNumeric(x)
If a Then
Text2 = Text2 & x
Else
Text3 = Text3 & x
End If
Next i
راهنمای که ازتون می خوام اینه چی کار کنم فقط اعداد 11 رقمی به صورت زیر هم چاپ شه.
با سپاس
یکم گنگ مطرح کردی
از کجا این اعدادو بگیره و روی چی چاپ کنه ؟
با از کیبد یا سریال و یا ...
و روی چی چاپ کنه ؟ بفرسته با پورت سریال یا روی ال سی دی و یا ...
(۱۴-شهریور-۱۳۹۳, ۲۳:۱۰:۴۹)wle1036 نوشته است: [ -> ] یکم گنگ مطرح کردی
از کجا این اعدادو بگیره و روی چی چاپ کنه ؟
با از کیبد یا سریال و یا ...
و روی چی چاپ کنه ؟ بفرسته با پورت سریال یا روی ال سی دی و یا ...
با سلام،
متن که شامل حروف و اعداد هست رو از textbox میگیره و داخله textbox دیگه تمام اعداد رو چاپ می کنه. تا اینجا مشکلی ندارم.
کاری که می خوام انجام بدم اینه که تمام اعداد 11رقمی را زیر هم چاپ کند.
مثال:
09398092005
09153201717
09302215874
با سپاس
با سلام
البته من برنامه نویس مسلطی مثل سایر دوستان نیستم .
به نظرم برای طول رشته از تابع Len و برای زیر هم نوشتن از دستور Vbnewline
میتوانید استفاده کنید.
(۱۵-شهریور-۱۳۹۳, ۱۰:۱۱:۴۶)javad917 نوشته است: [ -> ]با سلام
البته من برنامه نویس مسلطی مثل سایر دوستان نیستم .
به نظرم برای طول رشته از تابع Len و برای زیر هم نوشتن از دستور Vbnewline
میتوانید استفاده کنید.
ممنون از راهنمایتون دوست عزیز من هم مدت کوتاهی که شروع به یادگیری vb کردم. من تونستم با دستور زیر اعدد 11 رقمی رو انتخاب کنم.
If Len(Text1) = 11 Then
print text1.text
end if
اما مشکل اینجاست که برای مثال من متن زیر رو که وارد کردم همون شماره اول فقط چاپ می شد و با دستور for همون عدد 11 رقمی تکرار مشد.
شماره همراه:09154115555
شماره همراه:09151134575
شماره همراه:09398092005
باید چی کار کنم که تمام اعداد 11 رقمی چاپ بشن.
با سپاس
یه پروژه جدید ایجاد کن و در فرم اون دوتا تکست باکس و یک کامند باتون قرار بده و خاصیت مولتی لاین تکست باکس هات رو هم فعال کن
حالا کد زیر رو در واقعه کلیک کامند باتونت قرار بده.
کد:
Text2 = ""
Dim Temparry() As String
Temparry = Split(Text1, "09")
For i = 0 To UBound(Temparry)
If Len(Temparry(i)) >= 9 Then
s = Left(Temparry(i), 9)
If Len(CStr(Val(s))) = Len(s) Then
Text2 = Text2 & "09" & s & vbNewLine
End If
End If
Next i
خواهش می کنم قابلی نداشت، البته کد قبلی تو یک سری موارد خاص ممکنه درست کار نکنه برای همین این کد رو هم گذاشتم:
کد:
Text2 = ""
st = Text1
s = InStr(1, st, "09")
While s > 0 And Len(st) >= 9
sr = Mid(st, s + 2, 9)
If Len(CStr(Val(sr))) = Len(sr) Then
Text2 = Text2 & "09" & sr & vbNewLine
End If
st = Right(st, Len(st) - (s + 11))
s = InStr(1, st, "09")
Wend
امیدوارم کمک کنه
(۱۵-شهریور-۱۳۹۳, ۱۴:۳۶:۲۴)Di Di نوشته است: [ -> ]خواهش می کنم قابلی نداشت، البته کد قبلی تو یک سری موارد خاص ممکنه درست کار نکنه برای همین این کد رو هم گذاشتم:
کد:
Text2 = ""
st = Text1
s = InStr(1, st, "09")
While s > 0 And Len(st) >= 9
sr = Mid(st, s + 2, 9)
If Len(CStr(Val(sr))) = Len(sr) Then
Text2 = Text2 & "09" & sr & vbNewLine
End If
st = Right(st, Len(st) - (s + 11))
s = InStr(1, st, "09")
Wend
امیدوارم کمک کنه
بازم ممنونم با کمک شما تونستم تو کار مد نظرم سرعت پیشرفت کارم چندین برابر شه.
با سپاس