PDA

View Full Version : مشکل ورود اطلاعات در ویندوزهای مختلف



hdv212
پنج شنبه 28 تیر 1386, 17:56 عصر
سلام به همه
یه مشکلی هست که خیلی ذهنمو به خودش مشغول کرده
توی برنامه ی من که دیتابیسش هم اکسس هست، کاربر توی ویندوز خودش اطلاعاتی رو وارد کرده، حالا میخواد جستجو کنه، مثلا توی قسمت آدرس، مشکلی نیست جستجوش نتیجه داره، اما همون اطلاعات رو من روی سیستم خودم میارم و مثل همون کلمه رو جستجو میکنم، واسه من هیچی نمیاره، بعد پیگیر قضیه شدم دیدم مربوط به حرف ی هست، یعنی انگار حرف ی توی ویندوز من با حرف ی توی ویندوز مشتری فرق میکنی، این در حالی هست که وقتی عین کلمه رو از دیتابیس میگیرم و با اون جستجو میکنم، جواب میده، میشه بگین راه حل این مشکل چیه ؟ که تو هر ویندوزی کاربر وقتی جستجو میکنه مشکلی با کاراکترها نداشته باشه ؟ (این رو هم بگم من از دات نت 2 و ویندوز xp sp2 استفاده میکنم، واسه ی اجتناب از این مشکل هم به مشتری از ویندوز خودم دادم گفتم فعلا فقط با این ویندوز کار کن، چون ممکنه اگه یه ویندوز دیگه نصب کنی با این مشکل من مواجه بشی)
مرسی

PC2st
جمعه 29 تیر 1386, 01:05 صبح
دو نوع ی داریم یکیش با کلید D تایپ میشه به شکل ی و دیگری با کلید Shift+X تایپ میشه و با شکل ی یعنی دو نقطه زیرش داره ولی در حالتی که این دو نوع در داخل یک کلمه باشند، قابل تشخیص از هم نیستند، مثلا کلمه "کبیر" شبیه کلمه "کبیر" هست ولی ی اولی با دومی فرق میکنه.

hdv212
جمعه 29 تیر 1386, 01:34 صبح
دقیقا همینی هست که گفتی، ولی حالا با این مشکل چکار کنیم ؟

PC2st
جمعه 29 تیر 1386, 01:45 صبح
هر کدوم از این دو نوع "ی"، دارای یک unicode هستند که بستگی داره تا در بانک اطلاعاتی، بر اساس کدام "ی"، اطلاعات ثبت شده باشه، اگر اطلاع داشته باشیم که مثلا در بانک اطلاعاتی، کلیه "ی" ها، به کمک Shift+X تایپ شده باشه، در حین جستجو، وقتی کاربر حرف "ی" رو با کلید D تایپ کرد (یعنی چک میکنیم که unicode اون کاراکتر چیه)، ما می آیم و "ی" تایپ شده توسط کاربر رو با "ی" تایپ شده با کلید Shift+X جابجا می کنیم (unicode کاراکتر "ی" را با بانک اطلاعاتی سازگار میکنیم) و کلمه جدید را مورد جستجو قرار میدهیم که سازگار با کاراکتر "ی" در بانک اطلاعاتی است.

iman_s52
جمعه 29 تیر 1386, 08:01 صبح
در ضمن فکر کنم روی حرف ک هم مشکل داشته باشی ؟؟؟ یه چک بکن
من هم این مشکل رو داشتم ولی با این راه حل برطرف شد ::
هرجایی که قراره برنامه ات اجرا بشه فایل kbdfa.dll مربوط به ویندوز رو تو Setup برنامه ات بذار یا اینکه دستی کپی کن ( البته تویه Safe Mode) اون وقت دیگه این مشکلات برات پیش نمیاد.
این فایل هم تویه شاخه System32.

Happy_davood
جمعه 29 تیر 1386, 14:52 عصر
خوب فقط ی و ک نیستند چند تا کاراکتر دیگه مثل الف حمزه دار هم این مشکل رو دارند .
بهتر این راه برای حل این مشکل این هست که یه کنترل از کلاس TextBox مشتق کنی و همیشه به جای TextBox از کنترل خودت استفاده کنی .
کنترل خودت باید در وقفه KeyDown کاراکتر های ی یا ک رو برداره و ی و ک خودت رو جایگزین کنه . در اینصورت همیهش مطمئن هستی که دیتابیس فقط یک نوع ک یا ی داره . اگه موقع جستجو هم از همین TextBox خودت استفاده کنی مشکلی نخواهد بود .