ايران ويج

نسخه‌ی کامل: عملگر like
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
فرض كنيم يه متغير رشته داريم به نام 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

البته من وی بی روی کامپیوترم ندارم . شما خودت زحمت بکش چکش کن !