PDA

View Full Version : تبدیل ي نقطه دار و ی بی نقطه عربی به ی فارسی و ك عربی به ک فارسی



hasanr
جمعه 23 اردیبهشت 1390, 19:21 عصر
همونطور که می دونین تفاوت استانداردهای کیبورد باعث شده که شکلهای مختلف حرف <ی> و <ک> دردسرهای زیادی در ذخیره و بازیابی کلمات در پایگاههای داده بوجود بیاره
یکی از راه حلها استفاده از kbdfa.dll هست اما این راه ممکنه برای برنامه های دیگه مشکل بوجود بیاره

راه دیگه ای که به نظر میرسه اینه که توی برنامه خودمون کاری کنیم که بدون توجه به آرایش صفحه کلید و استانداردهای اون ، برنامه ما حروف عربی رو به شکل فارسی دریافت کنه یعنی کاراکترهایی که تایپ می کنیم بررسی شده و <ي> عربی نقطه دار و <ی> عربی بی نقطه به <ی> فارسی و همچنین <ك> عربی به <ک> فارسی تبدیل بشن
برای اینکار کدهای زیر رو در رویداد KeyPress فرم مورد نظر کپی کنین و خاصیت key preview فرم رو هم yes کنین



If KeyAscii = 1610 Or KeyAscii = 1609 Then
KeyAscii = 1740

ElseIf KeyAscii = 1603 Then
KeyAscii = 1705

End If


از مدیران محترم درخواست دارم در صورت تکراری بودن مطلب رو حذف کنن یا اگه لازمه به تاپیک دیگه ای منتقلش کنن مثل این تاپیک ( مشکلات فارسی و سورسهای مربوطه (http://barnamenevis.org/showthread.php?51987-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%A8%D9%88%D8%B7%D9%87) )

parsa70
یک شنبه 22 تیر 1399, 11:00 صبح
من استفاده میکنم ولی هنوز ی و ک عربی نشون میده
راه دیگه ای هست؟؟:متفکر:
البته تو بعضی از فرمها اینجوری هست.

padide55
یک شنبه 22 تیر 1399, 11:17 صبح
همونطور که می دونین تفاوت استانداردهای کیبورد باعث شده که شکلهای مختلف حرف <ی> و <ک> دردسرهای زیادی در ذخیره و بازیابی کلمات در پایگاههای داده بوجود بیاره
یکی از راه حلها استفاده از kbdfa.dll هست اما این راه ممکنه برای برنامه های دیگه مشکل بوجود بیاره

راه دیگه ای که به نظر میرسه اینه که توی برنامه خودمون کاری کنیم که بدون توجه به آرایش صفحه کلید و استانداردهای اون ، برنامه ما حروف عربی رو به شکل فارسی دریافت کنه یعنی کاراکترهایی که تایپ می کنیم بررسی شده و <ي> عربی نقطه دار و <ی> عربی بی نقطه به <ی> فارسی و همچنین <ك> عربی به <ک> فارسی تبدیل بشن
برای اینکار کدهای زیر رو در رویداد KeyPress فرم مورد نظر کپی کنین و خاصیت key preview فرم رو هم yes کنین



If KeyAscii = 1610 Or KeyAscii = 1609 Then
KeyAscii = 1740

ElseIf KeyAscii = 1603 Then
KeyAscii = 1705

End If


از مدیران محترم درخواست دارم در صورت تکراری بودن مطلب رو حذف کنن یا اگه لازمه به تاپیک دیگه ای منتقلش کنن مثل این تاپیک ( مشکلات فارسی و سورسهای مربوطه (https://barnamenevis.org/showthread.php?51987-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%A8%D9%88%D8%B7%D9%87) )



If KeyAscii = 247 Then
KeyAscii = 1662
End If
If KeyAscii = 46 Then
KeyAscii = 1688
End If
If KeyAscii = 1610 Then
KeyAscii = 1740
End If
If KeyAscii = 1603 Then
KeyAscii = 1705
End If
If KeyAscii = 62 Then
KeyAscii = 1570
End If

parsa70
یک شنبه 22 تیر 1399, 11:25 صبح
If KeyAscii = 247 Then
KeyAscii = 1662
End If
If KeyAscii = 46 Then
KeyAscii = 1688
End If
If KeyAscii = 1610 Then
KeyAscii = 1740
End If
If KeyAscii = 1603 Then
KeyAscii = 1705
End If
If KeyAscii = 62 Then
KeyAscii = 1570
End If
ممنون بازم درست نشد.
البته این که برای من نشون میده کپشن یک لیبل هست که اینجوری نشون میده شاید چون توی VBA ی نقطه داره زیرش توی فرم هم اینجوری نشون میده
برای vba هم راه حلی هست؟؟

padide55
یک شنبه 22 تیر 1399, 11:31 صبح
ممنون بازم درست نشد.
البته این که برای من نشون میده کپشن یک لیبل هست که اینجوری نشون میده شاید چون توی VBA ی نقطه داره زیرش توی فرم هم اینجوری نشون میده
برای vba هم راه حلی هست؟؟

اونهایی که از قبل تایپ شده رو باید با ریپلیس اصلاح کنید .
این کدها فقط ثبتهای بعدی رو استاندارد میکنه .

جدول رو باز کنید و ک عربی رو با فارسی و ی عربی رو با فارسی ریپلیس کنید
ي عربی
ی فارسی

شیفت طا ی عربی مینویسه با بعضی کیبوردها

ک فارسی

eb_1345
یک شنبه 22 تیر 1399, 14:40 عصر
اونهایی که از قبل تایپ شده رو باید با ریپلیس اصلاح کنید .
این کدها فقط ثبتهای بعدی رو استاندارد میکنه .

جدول رو باز کنید و ک عربی رو با فارسی و ی عربی رو با فارسی ریپلیس کنید
ي عربی
ی فارسی

شیفت طا ی عربی مینویسه با بعضی کیبوردها

ک فارسی


کدهای فوق باعث تغییر حروف ی و ک در جدول نمیشوند . نوشتن این کدها در رویداد KeyPress یک تکست باکس باعث میشود همان لحظه ي و ك عربی تایپ شده در تکست باکس به ی و ک
فارسی تبدیل شوند . از این کد برای جستجوی صحیح حروف فوق در پایگاه داده استفاده میشه