نمایش نتایج 1 تا 25 از 25

نام تاپیک: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

  1. #1
    کاربر دائمی آواتار wolfstander
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    کتاب اکسس
    پست
    724

    استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سوالی که من از دوستان دارم اینه که با توجه به اینکه خیلی از سیستمها در حروف "ی" و "ک" ایراد دارن، چطور میتونم با استفاده از یک کیبرد مجازی، موقعی که کاربر روی دکمه کلیک میکنه، مقدار موجود در تکست باکس بعلاوه حرف کلیک شده بشه و توی تکست باکس قرار بگیره؟
    البته ممکنه خیلی از دوستان ، من رو به تاپیکی ارجاع بدن که توش این مشکل با نصب یک نرم افزار حل شده یا استفاده از kbdfa.dll استاندارد ویندوز رو توصیه کنند
    متاسفانه، شرکت همکاران سیستم چون نتونسته مشکل رو حل کنه، میاد و از kbdfa.dll اختصاصی خودش استفاده میکنه
    حالا تو شرکت ما، حسابداری از سیستم همکاران میره جلو، بقیه استاندارد مایکروسافت هستند
    برای همین ، نمیشه همه رو استاندارد کرد
    و استفاده از راه حل به نظر من ابلهانه همکاران سیستم که صورت مساله رو حل کرده، به هیچ عنوان درست نیست
    حالا راه حل رو در این دیدم، که بدون توجه به بقیه، از استاندارد استفاده کنم
    حالا میخوام در موقع جستجوی کاربران، بتونند از هردو استفاده کنند برای جستجوی موارد
    برای همین این تاپیک رو باز کردم و سوال کردم
    البته از یکی از دوستان هم که راه حلی در این زمینه داشتند، خواستم کمک کنند که سر ایشون شلوغ بود متاسفانه و نشد که از تجربه این دوست خوبمون استفاده کنم
    برای همین خواستم از تجربه بقیه دوستان استفاده کنم


    با تشکر از شما دوستان خوب

  2. #2
    کاربر دائمی آواتار wolfstander
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    کتاب اکسس
    پست
    724

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    ای داد بیداد
    میبینم کسی جواب نمیده
    من فایلش رو ضمیمه نکردم

    اینم از فایل که ضمیمه شده
    اینها همه اش از مضرات پیریه
    فایل های ضمیمه فایل های ضمیمه

  3. #3

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام
    منم چندی پیش برای سنجش اعتبار کاربر و تعیین سطح دسترسی همین مشکلو داشتم که از راه دیگه ای و بدون بررسی <ي> و <ك> حل شد

    درباره این مشکل هم ایده ای که به نظرم اومد این بود : در رویداد keypress فرمتون ، کد اسکی کلید فشرده شده رو بررسی کنید و اگه برابر کد اسکی <ي> عربی یا <ی> عربی بی نقطه بود بجای آن <ی> فارسی را قرار دهید

    با توجه به اطلاعاتی که از شما سراغ دارم به نظرم خودتون می تونین کدهاش رو بنویسین با اینحال برای یادآوری عرض می کنم که از توابع زیر استفاده کنین :


    ASC ("A") تبدیل کاراکتر به کد اسکی
    CHR(codeAscii) تبدیل کد اسکی به کاراکتر



    آخرین ویرایش به وسیله hasanr : جمعه 23 اردیبهشت 1390 در 12:42 عصر

  4. #4

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام
    ببخشيد ميشه يه نمونه از اين كد رو برام بزاريد
    ممنون

  5. #5

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    یه نمونه نبود؟ بخدا ما تازه کاریم گناه چیه؟

  6. #6
    کاربر دائمی آواتار wolfstander
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    کتاب اکسس
    پست
    724

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 1610 Or KeyAscii = 1609 Then
    KeyAscii = 1740

    ElseIf KeyAscii = 1603 Then
    KeyAscii = 1705
    ' MsgBox " تبديل ك انجام شد "

    End If
    End Sub

    این بهترین راهه
    کاربر حتی اگه کیبردش استاندارد نباشه، حروف رو استاندارد وارد میکنه
    این رو توی کل فرمهات بزن
    در نتیجه تو دیتابیس هم استاندارد ذخیره میشه

  7. #7

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    تبدیل "ی" کو؟ یه مثال میزنی نمیدونم چرا همیشه مثال از خود مسئله ساده تره

  8. #8
    کاربر دائمی آواتار wolfstander
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    کتاب اکسس
    پست
    724

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    دوست عزیز، چرا شما همیشه دنبال لقمه آماده هستی؟
    KeyAscii = 1740
    یعنی تبدیل "ی"
    شما یک بار کد رو اجرا کن
    اگه جواب نگرفتی ، بیا و پست جدید بزن
    یه ذره، خیلی کم، به اندازه یک اپسیلون زحمت بده به خودت
    خیلی کم
    خیلی خیلی کم
    لقمه آماده که نمیشه همیشه برات گرفت
    اینجوری میشه که دیگه جواب نمیگیری
    و هی پست های مختلف میزنی در تاپیک های مختلف
    در حالی که جوابت همیشه بوده
    برات وجود داشته
    برات سمپل گذاشتن
    برات کد گذاشتن
    ولی خیلی طلبکارانه میای و میگی، پس ی کو؟
    حتی اینقدر برای کسایی که بهت پاسخ دادن احترام قائل نمیشی که لحن طلبکارانه نداشته باشی
    تشکرف پیشکش
    خوش باشی

  9. #9

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام دوستان
    راه حلهایی که گذاشتین جالب هستن اما یه راه حل مشابه و ساده دیگه هم هست که این زیر براتون می نویسم. اون هم استفاده از تابع Replace مربوط به Stringها میشه:

    شما کافی که یک تابع استاتیک توی یک کلاس عمومی برای خودتون تعریف بکنید که وظیفش اجرای همین تبیدل باشه.

            public static string ConvertIt(string str)
    {
    return str.Replace('ﻱ', 'ی').Replace('ﻚ', 'ک');
    }


    این تابع هم ی و هم ک رو براتون تبدیل میکنه، ممکنه بعضی از دوستان بگن که خوب الان یک مشکل جدید پیش میاد که هی باید این تابع رو اجرا بکنیم.
    در جواب باید بگم که فرض کنید بخشی از اطلاعات ورودی از طریق Copy و Paste وارد فرمها بشه، به این ترتیب شما کنترلی روی متن کپی شده با روشهای قبلی نخواهیم داشت.
    دوستانی که حرفه ای تر هستند می تونن از Extentionها هم برای افزودن این تابع به خود کلاس String استفاده بکنن و کارشون بسیار ساده تر بشه.
    اما تا همین جاش هم میتونه بسیار مفید و عالی باشه

    یک توضیح کوچیک دیگه هم بدم که باید این نکته رو تو ذهن داشته باشید که تعداد (ی)ها و (ک)ها بیشتر اینهاست که ما فکر میکنیم. برای اینکه بدونید چندین (ی) و (ک) وجود داره برید توی Microsoft Word و از بخش Insert قسمت Symbol رو انتخاب کنید. حالا توی لیست کاراکترها که براتون نشون داده میشه ببینید که تعداد زیادی (ی) و (ک) داریم که من سه، چهار موردش رو توی متنهای مختلف دیدم که وجود داشته و برای Parse کردن و جستجو توشون به چنین مشکلاتی بر خورده بودیم.

  10. #10

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    یه نمونه بذار من نمیدونم public static string تو کجای Event هست؟
    آیا باید مثل قبلی تو هر فرم کپی شه؟

  11. #11

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    نمونه ای که براتون گذاشتم خودش یک تابع کامل هست
    شما این تابع رو می تونید بین Eventهاتون استفاده کنید. یعنی بعد از علامتهای {} که Eventها دارند، شما باید اون تابعی که نوشتم رو بنویسید.

    روش استفاده از اون هم به این شکل هست که هر جای اون فرم یا کلاس که خواستید از این تابع استفاده کنید چیزی شبیه به همین کد رو باید بنویسید:

    string X = ConvertIt(TextBox1.Text);

  12. #12
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    با تابع زیر می توان حروف مورد بحث را در تمام رکوردهای یک جدول تغییر داد


    Sub ChangeUnicode(tableName As String)
    Dim rs As Recordset
    Dim fld As Field
    Set rs = CurrentDb.OpenRecordset(tableName)
    Do While Not rs.EOF
    rs.Edit
    For Each fld In rs.Fields
    If Not IsNull(fld) Then
    fld = Replace(fld, ChrW(1603), ChrW(1705))
    fld = Replace(fld, ChrW(1610), ChrW(1740))
    End If
    Next
    rs.Update
    rs.MoveNext
    Loop
    rs.Close
    End Sub

    آخرین ویرایش به وسیله Abbas Amiri : یک شنبه 25 فروردین 1392 در 00:05 صبح

  13. #13

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام ببخشید تا جایی که من متوجه شدم این کدها یااطلاعات دیتابیس را تغییر میدن یا زمان تایپ حروف رااصلاح می کنند من کدی میخوام که چیزی را تغییر نده وفقط زمان سرچ وقتی (ی یا ي) نوشتیم همه را پیدا کنه فارغ عربی یا فارسی بودنش همینطور برای (ک)
    بازهم اگر کج فهمیدم به مبتدی بودنم ببخشید
    آخرین ویرایش به وسیله عباس عباس : دوشنبه 09 بهمن 1391 در 17:06 عصر دلیل: غلط املایی

  14. #14
    کاربر دائمی آواتار abdoreza57
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    دنياي آمال و آرزوها
    پست
    499

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام

    كد مورد اشاره استاد اميري به نظر ميرسه تو خيلي از موارد به درد بخوره

    مشكلم اين هست كه نتونستم با اين كد به خواسته ام برسم
    متاسفانه تاپيك طولاني شد ولي مثلا تو انن نمونه هر كاري كردم نشد تمام حروف ي و ك را يكسان سازي كرد
    تيبل پرسنال داراي هر دو نوع" ي" هست كه با اين كد تغييري نميكنه !
    لطفا راهنمايي براي مبندي ها بكنيد مثل خودم
    ممنون از توجهتون

  15. #15
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    برای تست این که تغییر میدهد یا نه کافیه یک خط کد به روال فوق اضافه کنید تا فیلدهایی که تغییر کرده اند را ببینید


    If Not IsNull(fld) Then
    If InStr(fld, ChrW(1610)) Or InStr(fld, ChrW(1603)) Then Debug.Print fld
    fld = Replace(fld, ChrW(1603), ChrW(1705))
    fld = Replace(fld, ChrW(1610), ChrW(1740))
    End If


  16. #16
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آبان 1388
    پست
    407

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    نقل قول نوشته شده توسط Abbas Amiri مشاهده تاپیک
    با تابع زیر می توان حروف مورد بحث را در تمام رکوردهای یک جدول تغییر داد


    Sub ChangeUnicode(tableName As String)
    Dim rs As Recordset
    Dim fld As Field
    Set rs = CurrentDb.OpenRecordset(tableName)
    Do While Not rs.EOF
    rs.Edit
    For Each fld In rs.Fields
    If Not IsNull(fld) Then
    fld = Replace(fld, ChrW(1603), ChrW(1705))
    fld = Replace(fld, ChrW(1610), ChrW(1740))
    End If
    Next
    rs.Update
    rs.MoveNext
    Loop
    rs.Close
    End Sub

    سلام
    من این کد را بر روی نمونه ای که آقای abdoreza57 آپلود نموده بودند امتحان کردم و در زمان اجرا خطای «فیلد نمی تواند آپدیت گردد» صادر میشود.
    باتشکر

  17. #17
    کاربر دائمی آواتار abdoreza57
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    دنياي آمال و آرزوها
    پست
    499

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام جناب اميري

    نميدونم چرا تو اين مورد اينقدر دوزايم كجه !!! اصلا نميگيرم ...
    خيليم كلنجار رفتم نتونستم ! هر كاري ميكنم نميتونم عطاي كدتون را به لقاش ببخشم لطفا يه نمونه بذاريد اگه امكانش هست

    خدا نگهدار

  18. #18
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام فرم شما را گذاشتم فقط در جدول پرسنل بعضی از حروف ی و ک را به فرمت XP تغییر دادم ویک کپی از آن گرفتم . در فرم یک با فشردن باتن ، حروف جدول پرسنل 2 تصحیح میشود .
    با جدول پرسنل مقایسه اش کنید .
    فایل های ضمیمه فایل های ضمیمه

  19. #19

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    سلام به همه دوستان من در sql با ي و ك مشكل داشتم با اين dll مشكلم حل شد . متاسفانه dll هاي زيادي هست ولي هيچ كدوم كار نكرد جز اين ، فقط بايد تو سيستم كپي كني ، اميدوارم كمكت كنه در help فايل ضميمه توضيحات هست
    win 7 64bit & 32bit
    win xp
    فایل های ضمیمه فایل های ضمیمه

  20. #20

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    نقل قول نوشته شده توسط Masterhame مشاهده تاپیک
    سلام دوستان
    راه حلهایی که گذاشتین جالب هستن اما یه راه حل مشابه و ساده دیگه هم هست که این زیر براتون می نویسم. اون هم استفاده از تابع Replace مربوط به Stringها میشه:

    شما کافی که یک تابع استاتیک توی یک کلاس عمومی برای خودتون تعریف بکنید که وظیفش اجرای همین تبیدل باشه.

            public static string ConvertIt(string str)
    {
    return str.Replace('ﻱ', 'ی').Replace('ﻚ', 'ک');
    }


    این تابع هم ی و هم ک رو براتون تبدیل میکنه، ممکنه بعضی از دوستان بگن که خوب الان یک مشکل جدید پیش میاد که هی باید این تابع رو اجرا بکنیم.
    در جواب باید بگم که فرض کنید بخشی از اطلاعات ورودی از طریق Copy و Paste وارد فرمها بشه، به این ترتیب شما کنترلی روی متن کپی شده با روشهای قبلی نخواهیم داشت.
    دوستانی که حرفه ای تر هستند می تونن از Extentionها هم برای افزودن این تابع به خود کلاس String استفاده بکنن و کارشون بسیار ساده تر بشه.
    اما تا همین جاش هم میتونه بسیار مفید و عالی باشه

    یک توضیح کوچیک دیگه هم بدم که باید این نکته رو تو ذهن داشته باشید که تعداد (ی)ها و (ک)ها بیشتر اینهاست که ما فکر میکنیم. برای اینکه بدونید چندین (ی) و (ک) وجود داره برید توی Microsoft Word و از بخش Insert قسمت Symbol رو انتخاب کنید. حالا توی لیست کاراکترها که براتون نشون داده میشه ببینید که تعداد زیادی (ی) و (ک) داریم که من سه، چهار موردش رو توی متنهای مختلف دیدم که وجود داشته و برای Parse کردن و جستجو توشون به چنین مشکلاتی بر خورده بودیم.

    سلام
    اقا من اینجوری میزنم ولی اون لیبل ها فارسی نمیشند کجا رو اشتباه میزنم



    namespace FastReport
    {
    public class ReportScript
    {
    //For Title
    public static string ConvertIt(string ProductNameLabel)
    {
    return ProductNameLabel.Replace('ﻱ', 'ی').Replace('ﻚ', 'ک');
    }

    }
    آخرین ویرایش به وسیله SANBOR : شنبه 13 شهریور 1400 در 09:33 صبح

  21. #21

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    کسی نیست کمک کنه ؟

  22. #22

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    یک یاری به بنده کنید. این مشکل رو بتوانم برطرف کنم
    ممنون

  23. #23
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    نقل قول نوشته شده توسط SANBOR مشاهده تاپیک
    یک یاری به بنده کنید. این مشکل رو بتوانم برطرف کنم
    ممنون
    1- کدهای شما (و همینجور کاربری که از کدش استفاده کردین) #C هست و باید در بخش خودش مطرح کنین.
    2- پاسخ مربوط به اکسس در پست های آقای امیری آمده.

  24. #24

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    میشه لینکش رو بهم بدید
    پیداش نمیکنم

  25. #25
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"

    نقل قول نوشته شده توسط SANBOR مشاهده تاپیک
    میشه لینکش رو بهم بدید
    پیداش نمیکنم
    در صفحه اصلی تالار بخش #C رو میبینین.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •