PDA

View Full Version : مشکل حرف ی در سرچ کردن



forozeshfard
یک شنبه 21 آبان 1385, 05:21 صبح
با سلام
احتراما برنامه من 2 فرم دارد که در فرم اول مشخصات فردی شامل (نام – فامیلی – آدرس – تلفن ) مثل (مهدی – فروزش فرد – شیراز - 123) را وارد می کنیم و در دیتا بیس ذخیره می کند و در فرم دوم جستجو بر اساس نام می باشد که این صفحه شامل یک textbox می باشد که باید نام مورد نظر در آن تایپ گردد تا رکورد خواسته شده نمایش داده شود .
بعنوان مثال وقتی در textbox می نویسیم م رکورد مربوط به مهدی را نمایش می دهد به طبع به همین ترتیب تا زمانی که می نویسیم مهد رکورد مهدی را نمایش می دهد ولی هنگامی که می نویسیم مهدی یعنی ی آخر را می گذاریم دیگر رکورد مربوط به مهدی نمایش داده نمی شود . ضمنا ذکر این نکته ضروری است که اگر کلمه ای با ی شروع شود همین مشکل را دارد .
خواهشمندم در این مورد راهنمایی نمایید شایان ذکر است که تمام صفحات بصورت utf8 ذخیره شده اند و خط هم thoma می باشد و به گفته برخی از دوستان از حرف N در جلو textbox هم استفاده کرده ام که باز جواب نداده است .
با سپاس فراوان

alireza6282
یک شنبه 21 آبان 1385, 12:41 عصر
خوب مشکل عجیبی نیست .
ی و ک این مشکل رو دارند به نظر من بهتره شما یه استاندارد تعریف کنی و هر داده ای که وارد برنامه میشه این حروف به یه شکل تو بانک ثبت بشه و برای جستجو هم از همون استاندارد استفاده کنی .
مشکل حل میشه .
برای داده هایی که تا الان داری هم با یه برنامه کوچولو می تونی همه رو تبدیل کنی .
مثلا یه جور ی داشته باشی .
به تابع برای جایگزاری حروف بنویس و خیال خودتو راحت کن .
نکته :
یه فایل داریم به نام kbdfa.dll که برای فارسی دو تا نسخه از اون موجوده
که این حروف تو اونا با هم فرق می کنه دلیل مشکل شما هم همینه .

bashir_nashi
یک شنبه 21 آبان 1385, 20:40 عصر
سلام .
من این مشکل رو قبلا فقط با ی داشتم که چون داده های برنامه ام فقط از طریق خود اون وارد نمی شد موقع سرچ یه تابع نوشتم که کاربر هر نوع ی رو تایپ کرده باشه نوع دیگه هم جستجو بشه .
ولی تازگی این مشکل رو با ک - چ - ظ هم پیدا کردم . مگه این حروف هم چند شکلی هستند . راه حل این مشکل چیه ؟
ممنون

monochrome
یک شنبه 21 آبان 1385, 22:25 عصر
پیشنهاد میکنم به جای D از ترکیب Shift+X برای تایپ حرف "ی" استفاده کنین (یا برعکس، در صورتی که از Shift+X استفاده میکنین، از D استفاده کنین) این مشکل مربوط به ویندوز XP میشه که کدپیج های قدیمی رو به هم ریخته، اما database ها هنوز کاملا به روز نشده اند.

shahab_ksh
یک شنبه 21 آبان 1385, 23:10 عصر
در کل میگم این نوع مشکلات رو حل کنید

در ورودی تکس باکستون جای ی عربی رو با ی فارسی عوض کنید





Str=Name.Text


("ی","ی")Str=Str.Replace




زیاد با این ویرایشگر میانه خوبی ندارم امیدوارم گرفته باشید

zarrin_306
دوشنبه 22 آبان 1385, 10:51 صبح
البته من در قسمت زبان کنترل پنل در قسمت یونی کد آنر اکه فعال کردم درست شد
در حالی که در قبل برای وارد کردن ی بجای انکه دکمه ی را بزنم از شیفت + ط استفاده میکردم
این مشکل رو من از این طریق حل کردم

bashir_nashi
دوشنبه 22 آبان 1385, 19:48 عصر
همانطور که عرض کردم مشکل ی حل شده و در واقع برای حلش راههای زیادی است که ...
من الان با ک - چ - ظ همین مشکل رو دارم . یعنی وقتی یوزر برنامم ویندوزش رو عوض کرد دیگه موقع سرچ با این حروف مشکل پیدا کرده . می خوام ببینم از این حروف هم مثل ی چند تا وجود داره یا نه !!!

zarrin_306
سه شنبه 23 آبان 1385, 12:21 عصر
زبان رو به فارسی برگردون و مثل ی + شیفت دنبال بقیه بگرد
و اینو بگم که تمام فونت های فارسی که در دو zip fill هستن رو که حدود 500 الی 600 تا هستن رو به فونتهات اضافه کن
و نیز یونی کد ویندوز رو از تب 3 language درون کنترل پنل هماهنگ کن

fakhravari
سه شنبه 28 شهریور 1391, 00:13 صبح
http://barnamenevis.org/showthread.php?361402-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%B3%D8%B1%DA%86-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D9%84%D9%85%D8%A7%D8%AA%DB%8C-%DA%A9%D9%87-%D8%AF%D8%B1-%D8%A7%D9%86%D9%87%D8%A7-%D8%AD%D8%B1%D9%88%D9%81-%DB%8C-%D9%88-%DA%A9-%D8%A8%DA%A9%D8%A7%D8%B1-%D8%B1%D9%81%D8%AA%D9%87-!!!&p=1596048#post1596048

damanpak
سه شنبه 28 شهریور 1391, 13:02 عصر
با سلام
احتراما برنامه من 2 فرم دارد که در فرم اول مشخصات فردی شامل (نام – فامیلی – آدرس – تلفن ) مثل (مهدی – فروزش فرد – شیراز - 123) را وارد می کنیم و در دیتا بیس ذخیره می کند و در فرم دوم جستجو بر اساس نام می باشد که این صفحه شامل یک textbox می باشد که باید نام مورد نظر در آن تایپ گردد تا رکورد خواسته شده نمایش داده شود .
بعنوان مثال وقتی در textbox می نویسیم......
با سپاس فراوان
سلام دوست گلم

خدمت شما عرض شود که منم قبلا همین مشکل رو داشتم و براش یه تابع نوشتم تا مشکل حل بشه

شما میتونی این تابع رو توی کدماژول قرار بدی و صداش کنی

Public Function mytxt(ByVal txt As String) As String

Dim txt2(txt.Length) As String
For i As Byte = 1 To UBound(txt2)
txt2(i) = Mid(txt, i, 1)
Next
txt = Nothing
For i As Byte = 1 To UBound(txt2)
If txt2(i) = "ی" Then txt += "ي" Else txt += txt2(i)
Next
cnt = txt

End Function
حال نحوه صدا زدن موقع جستجو به جای این عبارت مثلا

dataview1.rofilter="name='"& textbox1.text &"'"
به جاش بگو

dataview1.rofilter="name='"& mytxt(textbox1.text) &"'"
انشاالله که مشکلت حل بشه