آژانس هواپیماییexchanging

روتين جستجوي فارسي در ويژوال بيسيك و اكسس

شروع موضوع توسط akaraei ‏19 دسامبر 2005 در انجمن Visual Basic 6

  1. akaraei

    akaraei کاربر تازه وارد

    تاریخ عضویت:
    ‏18 سپتامبر 2005
    نوشته ها:
    8
    تشکر شده:
    0
    من به مشكلي در مورد جستجوي فارسي دارم.
    از اين قرار كه من دارم برنامه اي در اكسس با ويژوال بيسيك نوشتم و مي خوام جستجوي فارسي روي فيلدهاي اطلاعاتي بذارم كه اگه يك كلمه رو جستجو كنه و فيلدي شامل اين كلمه باشه در اختيار كاربر قرار بگيره ولي هر كاري ميكنم حروف فارسي مثل انواع "ك" و "ي" و از اين قبيل رو نمي تونه پيدا كنه چون هر دفعه يك كد متفاوت بر مي گردونه.چيكار مي تونم بكنم.از كمكتون خيلي ممنون مي شم
     
  2. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    بهترين كار تبديل تماي كدهاي وارد شده به يونيكد و بعد در هنگام جستجو بايد كلمه مورد نظر رو به يونيكد تبديل كرده و اين كد رو جستجو كنيد
     
  3. darklord

    darklord Registered User

    تاریخ عضویت:
    ‏23 آپریل 2005
    نوشته ها:
    1,083
    تشکر شده:
    1
    محل سکونت:
    System32
    حق با سعیده ولی اگه این کار برات سخته میتونی به یه کاراکتر معادل هم تبدیلش کنی مثلا اگه همیشه کاراکتر "ی" رو به کاراکتر "*" تبدیل کنی مشکلت حل میشه:

    از این به بعد همیشه قبل از ذخیره رشته در دیتا بیس تابع encode و بعد از خارج کردن رشته از دیتا بیس تابع decode رو روش اجرا کن مشکل حل میشه البته روش سعید خیلی بهتر و اصولی تره یعنی بهتره که کد رو به یونیکد تغییر بدی.... با این وجود این هم کار میکنه و مشکلت رو حل میکنه.

    کد:
    'Encode function
    '----------------
    Temp=""
    for i=0 to len(Text)
    	if mid(Text,i,1)="ی" then
    		Temp=Temp + "*"
    	else
    		Temp=temp + mid(Text,i,1)
    	end if
    next i
    'insert Temp to DataBase
    
    
    
    'Decode function
    '----------------
    'Import from DataBase
    Temp=""
    for i=0 to len(Text)
    	if mid(Text,i,1)="*" then
    		Temp=Temp + "ی"
    	else
    		Temp=temp + mid(Text,i,1)
    	end if
    next i