سلام
فرض كنيم يه متغير رشته داريم به نام A
حالا مي خوام تو يه شرط بگم اگه حرف اولش يكي از حروف a,d,e,h,l,o,y,t,w,z هست فلان كار رو بكن.
اين رو چه طوري مي تونم با استفاده از عملگر like بگم؟
اگه منظورت استفاده از دستورات SQL هست باید بگم که با like نمی تونی این کار رو بکنی ولی می تونی از تابع های وی بی توی دستورات SQL استفاده کنی می تونی از دستور mid استفاده کنی
اینجور کارها رو با Regular Expression ها انجام میدن .
سلام
far_222000 نوشته است:اگه منظورت استفاده از دستورات SQL هست باید بگم که با like نمی تونی این کار رو بکنی ولی می تونی از تابع های وی بی توی دستورات SQL استفاده کنی می تونی از دستور mid استفاده کنی
نه! SQL نمي خوام
من كي گفتم برنامه ام ديتابيسي است؟ برا يه if تو يه برنامه معمولي ميخوام.
درضمن مي شه بگي چه طوري از Mid استفاده كنم؟
Mamad2003 نوشته است:اینجور کارها رو با Regular Expression ها انجام میدن .
با چي چي؟
اين كه گفتي چيه؟
توضیحش مفصله . فقط بدون این تکنیک اینطور بکار میره که یک متن رو در مقابل یک شرط خاص یا pattern مقایسه میشه . معمولا این راهی هست برای بررسی صحت دستوری و ساختاری متن ها که طبق نیاز ما ، شروطی نسبتا پیچیده دارند و به برنامه نویسی بسیار زیادی نیاز هست که اینقدر کنترل و بررسی رو براشون ایجاد کنیم . این مبحث خیلی گسترده است و برای اطلاعات بیشتر و برای نحوه آشنایی با طرز ساخت Pattern ها به لینک زیر مراجعه کن :
http://en.wikipedia.org/wiki/Regular_expression
===============================================
این ریفرنس رو به برنامه ات اضافه کن : Microsoft VBScript Regular Expressions 5.5
بعد تابع زیر رو به برنامه ات اضافه کن :
کد:
Function TestRegExp(myPattern As String, myString As String) as Boolean
Dim objRegExp As RegExp
Set objRegExp = New RegExp
objRegExp.Pattern = myPattern
objRegExp.IgnoreCase = False
objRegExp.Global = True
If (objRegExp.Test(myString) = True) Then
TestRegExp = true
Else
TestRegExp = false
End If
End Function
پارامتر اول تابع Pattern نام داره و پارامتر دوم هم متن شماست .
واسه اون چیزی که شما میخوای :
Pattern مورد نظر شما اگر اشتباه نکنم باید رشته *+[adehloytwz] باشه . این یعنی حرف اول رشته شما باید شامل یکی از اون حروف باشه !
حالا تابع رو با Pattern و رشته مورد نظرت صدا بزن و مقدار بازگشتی رو چک کن . اگر true بود یعنی رشته شما اون شرط رو داره اگر نه نداره ! مثلا :
کد:
if TestRegExp("[adehloytwz]+*","allofus") then
msgbox("True!")
end if
البته من وی بی روی کامپیوترم ندارم . شما خودت زحمت بکش چکش کن !