ايران ويج

نسخه‌ی کامل: مشکل ی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

یه فیلد برای جستجو دارم که کلمه دریافت میکنه و پیدا میکنه

یه مشکلی که هست اینه که اگه "ی" به صورت "ي" یعنی عربی باشه پیدا نمیکنه

چکار میشه کرد؟


مرسی
سلام

توی همون فیلدت بنویس :
کد:
textbox1.text=replace(textbox1.text,"ي","ی")
سلام
منم با حرف ی مشکل دارم
تو ویبی دات نت اطلاعات رو وارد می کنم و تو بانک که اس کیو ال 2000 هست ذخیره میشه
ولی موقع جستجو همون اطلاعات وارد شده رو پیدا نمیکنه،انگار وقتی میخواد تو اس کیوال ذخیره بشه خودش تبدیل به نوع دیگه ای از ی میکنه
راه حل؟
راه حل همونی هست که آقا حامد گفتم موقع جستجو ، "ی" های موجود در عبارت رو با "ي" عوض کن.
سلام
من اطلاعات رو تو دات نت وارد میکنم و تو بانک ذخیره میشه،ولی نمیدونم چرا دیگه تو جستجو پیدا نمیشه
مشکل ي به جای ی نیست!
با هردونوع امتحان کردم،ی بعد از ذخیره شدن تو بانک تو جستجو دیگه شناخته نمیشه!
فقط این حالت جواب میده :
موقع ثبت اطلاعات از "ي" استفاده بشه(Shift+x) و موقع جستجو از "ی" معمولی!چرا؟ دلیلش چیه؟
اینجوری یعنی دات نت "ی" رو میشناسه و اسکیوال "ي" رو!
هر حالتی رو درنظر میگیرم جور در نمیاد:
1- دات نت ی فارسی وارد میکنه ولی لحظه ذخیره شدن تو اس کیوال ي عربی جاش میشینه!
اگه اینجوریه تو دات نت موقع جستجو وقتی عبارت مورد جستجو رو با ي عربی وارد کنیم باید پیدا کنه! ولی نمیکنه!

2- دات نت ی فارسی وارد میکنه و تو بانک هم ی فارسی میشینه!اگه اینجوریه پس اصلا مشکل چیه که جستجو کار نمیکنه؟

3- دات نت ي عربی وارد میکنه و تو اسکیوال ی فارسی میشینه! اگه اینجوریه چرا تو دات نت ی یا ي هیج کدوم موقع جستجو کار نمیکنه!
و...
Confused
کمکم کنید!!
شما اصلا ناراحت نباش درست می شه!

چند تا کار می گم انجام بده ان شالله که مشکلت رفع می شه.

اول از همه صفحه کلید فارسیت رو درست کن که هم مشکل "ی" حل بشه و هم جای "پ" و "ژ"

برای این کار باید فایل اصلاح شده زبان فارسی رو (KBDFA.Dll ) در System32 و DllCash کپی کنی

بعدش یه نگاه بنداز به زبانی که برای تیبلت انتخاب کردی بهتره روی Arabic_Ci_AS باشه.

و در آخر هم یک "ی" یا "ي" ذخیره شده در دیتابیست رو بخون و کد اسکیش رو نگاه کنن ببین به چه

صورتی ذخیره شده ، یعنی کدوم یک از حالت هایی که در بالا گفتی داره اتفاق می افته.

گاهی اوقات ممکنه چون اطلاعات از کلاینت های مختلفی وارد می شه بعضی ها "ی" می زنن و بعضی

هم "ي" که در این صورت یا صفحه کلیدهاشون رو درست کن یا موقع ذخیره اطلاعات همه "ي" ها رو به

"ی" تبدیل و بعد ذخیره کن یا موقع جستجو این کار رو انجام بده.

این کارها رو انجام بده ببین جواب می ده؟
سلام
ممنون از اینکه وقت گذاشتین و جواب دادین
تو بانک نگاه کردم فارسی بزنیم فارسی و عربی بزنیم عربی ذخیره میشه مشکلی نیست.
یعنی ذخیره در بانک هم ی فارسی و عربی رو تشخیص میده و هر کردومو که ما بخوایم ذخیره میکنه!
مشکل اینجاست که موقع جستجو هر کدوم از انواع ی رو بدی(چه فارسی چه عربی) الگوریتم جستجو فقط ي عربی رو میشناسه!نمیدونم چرا!
راستش مشکل رو حل کردم، یعنی همون که آقا حامد گفته بود و شما هم گفتید روش آقا حامد جواب میده، همون درست بود!
دوباره هم با ی فارسی و هم با ي عربی امتحان کردم، وقتی اطلاعات رو با ی فارسی ذخیره میکنم موقع جستجو نه ی فارسی و نه ي عربی هیچکدوم جواب نمیده
ولی وقتی اطلاعات رو با ي عربی ذخیره میکنم هم ی فارسی و هم ي عربی تو جستجو پیدا میشه و جواب میده!
پس یعنی همین دیگه: اطلاعات باید به صورت ي عربی تو بانک ذخیره بشه!
منم یه تابع نوشتم که یه تکس میگیره و هرجاش ی فارسی بود جاش ي عربی میذاره!همین!این تابع رو تو TextChange همه تکسهای ذخیره سازی اطلاعات فراخوانی کردم:
کد:
Function CorrectionStr(ByVal Txt As String)
Return Txt.Replace("ی", "ي")
End Function
این تابع کار تعویض ی فارسی و عربی رو انجام میده
کد:
Text1.Text = CorrectionStr(Text1.Text)
Text1.Select(Text1.TextLength, 0)
این کد هم برای رویداد textChanged
خط اول که فراخوانی تابع
خط دوم:وقتی تابع فراخوانی میشه اگه ی فارسی پیدا کنه و جایگزین کنه مکان نما میاد اول تکس و ادامه تکس میاد از اولش نوشته میشه و قاتی میشه
خط دوم مکان نما رو انتقال میده جای اصلی خودش یعنی آخر تکس
خیلیا که این مشکلو حل کردن اینو اینجا نوشتم اگه احیانا کسی بود که مثل من به این مشکل برخورده بود یه راهنمایی باشه واسش!Wink[/align]