-
استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سوالی که من از دوستان دارم اینه که با توجه به اینکه خیلی از سیستمها در حروف "ی" و "ک" ایراد دارن، چطور میتونم با استفاده از یک کیبرد مجازی، موقعی که کاربر روی دکمه کلیک میکنه، مقدار موجود در تکست باکس بعلاوه حرف کلیک شده بشه و توی تکست باکس قرار بگیره؟
البته ممکنه خیلی از دوستان ، من رو به تاپیکی ارجاع بدن که توش این مشکل با نصب یک نرم افزار حل شده یا استفاده از kbdfa.dll استاندارد ویندوز رو توصیه کنند
متاسفانه، شرکت همکاران سیستم چون نتونسته مشکل رو حل کنه، میاد و از kbdfa.dll اختصاصی خودش استفاده میکنه
حالا تو شرکت ما، حسابداری از سیستم همکاران میره جلو، بقیه استاندارد مایکروسافت هستند
برای همین ، نمیشه همه رو استاندارد کرد
و استفاده از راه حل به نظر من ابلهانه همکاران سیستم که صورت مساله رو حل کرده، به هیچ عنوان درست نیست
حالا راه حل رو در این دیدم، که بدون توجه به بقیه، از استاندارد استفاده کنم
حالا میخوام در موقع جستجوی کاربران، بتونند از هردو استفاده کنند برای جستجوی موارد
برای همین این تاپیک رو باز کردم و سوال کردم
البته از یکی از دوستان هم که راه حلی در این زمینه داشتند، خواستم کمک کنند که سر ایشون شلوغ بود متاسفانه و نشد که از تجربه این دوست خوبمون استفاده کنم
برای همین خواستم از تجربه بقیه دوستان استفاده کنم
با تشکر از شما دوستان خوب
-
1 ضمیمه
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
ای داد بیداد
میبینم کسی جواب نمیده
من فایلش رو ضمیمه نکردم
:خجالت:
اینم از فایل که ضمیمه شده
اینها همه اش از مضرات پیریه
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام
منم چندی پیش برای سنجش اعتبار کاربر و تعیین سطح دسترسی همین مشکلو داشتم که از راه دیگه ای و بدون بررسی <ي> و <ك> حل شد
درباره این مشکل هم ایده ای که به نظرم اومد این بود : در رویداد keypress فرمتون ، کد اسکی کلید فشرده شده رو بررسی کنید و اگه برابر کد اسکی <ي> عربی یا <ی> عربی بی نقطه بود بجای آن <ی> فارسی را قرار دهید
با توجه به اطلاعاتی که از شما سراغ دارم به نظرم خودتون می تونین کدهاش رو بنویسین با اینحال برای یادآوری عرض می کنم که از توابع زیر استفاده کنین :
ASC ("A") تبدیل کاراکتر به کد اسکی
CHR(codeAscii) تبدیل کد اسکی به کاراکتر
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام
ببخشيد ميشه يه نمونه از اين كد رو برام بزاريد
ممنون
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
یه نمونه نبود؟ بخدا ما تازه کاریم گناه چیه؟
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
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
این بهترین راهه
کاربر حتی اگه کیبردش استاندارد نباشه، حروف رو استاندارد وارد میکنه
این رو توی کل فرمهات بزن
در نتیجه تو دیتابیس هم استاندارد ذخیره میشه
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
تبدیل "ی" کو؟ یه مثال میزنی نمیدونم چرا همیشه مثال از خود مسئله ساده تره
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
دوست عزیز، چرا شما همیشه دنبال لقمه آماده هستی؟
KeyAscii = 1740
یعنی تبدیل "ی"
شما یک بار کد رو اجرا کن
اگه جواب نگرفتی ، بیا و پست جدید بزن
یه ذره، خیلی کم، به اندازه یک اپسیلون زحمت بده به خودت
خیلی کم
خیلی خیلی کم
لقمه آماده که نمیشه همیشه برات گرفت
اینجوری میشه که دیگه جواب نمیگیری
و هی پست های مختلف میزنی در تاپیک های مختلف
در حالی که جوابت همیشه بوده
برات وجود داشته
برات سمپل گذاشتن
برات کد گذاشتن
ولی خیلی طلبکارانه میای و میگی، پس ی کو؟
حتی اینقدر برای کسایی که بهت پاسخ دادن احترام قائل نمیشی که لحن طلبکارانه نداشته باشی
تشکرف پیشکش
خوش باشی
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام دوستان
راه حلهایی که گذاشتین جالب هستن اما یه راه حل مشابه و ساده دیگه هم هست که این زیر براتون می نویسم. اون هم استفاده از تابع Replace مربوط به Stringها میشه:
شما کافی که یک تابع استاتیک توی یک کلاس عمومی برای خودتون تعریف بکنید که وظیفش اجرای همین تبیدل باشه.
public static string ConvertIt(string str)
{
return str.Replace('ﻱ', 'ی').Replace('ﻚ', 'ک');
}
این تابع هم ی و هم ک رو براتون تبدیل میکنه، ممکنه بعضی از دوستان بگن که خوب الان یک مشکل جدید پیش میاد که هی باید این تابع رو اجرا بکنیم.
در جواب باید بگم که فرض کنید بخشی از اطلاعات ورودی از طریق Copy و Paste وارد فرمها بشه، به این ترتیب شما کنترلی روی متن کپی شده با روشهای قبلی نخواهیم داشت.
دوستانی که حرفه ای تر هستند می تونن از Extentionها هم برای افزودن این تابع به خود کلاس String استفاده بکنن و کارشون بسیار ساده تر بشه.
اما تا همین جاش هم میتونه بسیار مفید و عالی باشه
یک توضیح کوچیک دیگه هم بدم که باید این نکته رو تو ذهن داشته باشید که تعداد (ی)ها و (ک)ها بیشتر اینهاست که ما فکر میکنیم. برای اینکه بدونید چندین (ی) و (ک) وجود داره برید توی Microsoft Word و از بخش Insert قسمت Symbol رو انتخاب کنید. حالا توی لیست کاراکترها که براتون نشون داده میشه ببینید که تعداد زیادی (ی) و (ک) داریم که من سه، چهار موردش رو توی متنهای مختلف دیدم که وجود داشته و برای Parse کردن و جستجو توشون به چنین مشکلاتی بر خورده بودیم.
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
یه نمونه بذار من نمیدونم public static string تو کجای Event هست؟
آیا باید مثل قبلی تو هر فرم کپی شه؟
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
نمونه ای که براتون گذاشتم خودش یک تابع کامل هست
شما این تابع رو می تونید بین Eventهاتون استفاده کنید. یعنی بعد از علامتهای {} که Eventها دارند، شما باید اون تابعی که نوشتم رو بنویسید.
روش استفاده از اون هم به این شکل هست که هر جای اون فرم یا کلاس که خواستید از این تابع استفاده کنید چیزی شبیه به همین کد رو باید بنویسید:
string X = ConvertIt(TextBox1.Text);
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
با تابع زیر می توان حروف مورد بحث را در تمام رکوردهای یک جدول تغییر داد
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
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام ببخشید تا جایی که من متوجه شدم این کدها یااطلاعات دیتابیس را تغییر میدن یا زمان تایپ حروف رااصلاح می کنند من کدی میخوام که چیزی را تغییر نده وفقط زمان سرچ وقتی (ی یا ي) نوشتیم همه را پیدا کنه فارغ عربی یا فارسی بودنش همینطور برای (ک)
بازهم اگر کج فهمیدم به مبتدی بودنم ببخشید
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام
كد مورد اشاره استاد اميري به نظر ميرسه تو خيلي از موارد به درد بخوره
مشكلم اين هست كه نتونستم با اين كد به خواسته ام برسم
متاسفانه تاپيك طولاني شد ولي مثلا تو انن نمونه هر كاري كردم نشد تمام حروف ي و ك را يكسان سازي كرد
تيبل پرسنال داراي هر دو نوع" ي" هست كه با اين كد تغييري نميكنه !
لطفا راهنمايي براي مبندي ها بكنيد مثل خودم
ممنون از توجهتون
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
برای تست این که تغییر میدهد یا نه کافیه یک خط کد به روال فوق اضافه کنید تا فیلدهایی که تغییر کرده اند را ببینید
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
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
نقل قول:
نوشته شده توسط
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 آپلود نموده بودند امتحان کردم و در زمان اجرا خطای «فیلد نمی تواند آپدیت گردد» صادر میشود.
باتشکر
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام جناب اميري
نميدونم چرا تو اين مورد اينقدر دوزايم كجه !!! اصلا نميگيرم ...
خيليم كلنجار رفتم نتونستم ! هر كاري ميكنم نميتونم عطاي كدتون را به لقاش ببخشم لطفا يه نمونه بذاريد اگه امكانش هست
خدا نگهدار
-
1 ضمیمه
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام فرم شما را گذاشتم فقط در جدول پرسنل بعضی از حروف ی و ک را به فرمت XP تغییر دادم ویک کپی از آن گرفتم . در فرم یک با فشردن باتن ، حروف جدول پرسنل 2 تصحیح میشود .
با جدول پرسنل مقایسه اش کنید .
-
1 ضمیمه
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
سلام به همه دوستان من در sql با ي و ك مشكل داشتم با اين dll مشكلم حل شد . متاسفانه dll هاي زيادي هست ولي هيچ كدوم كار نكرد جز اين ، فقط بايد تو سيستم كپي كني ، اميدوارم كمكت كنه در help فايل ضميمه توضيحات هست
win 7 64bit & 32bit
win xp
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
نقل قول:
نوشته شده توسط
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
یک یاری به بنده کنید. این مشکل رو بتوانم برطرف کنم
ممنون
1- کدهای شما (و همینجور کاربری که از کدش استفاده کردین) #C هست و باید در بخش خودش مطرح کنین.
2- پاسخ مربوط به اکسس در پست های آقای امیری آمده.
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
میشه لینکش رو بهم بدید
پیداش نمیکنم
-
نقل قول: استفاده از کیبرد مجازی برای حروف "ی" و "ک"
نقل قول:
نوشته شده توسط
SANBOR
میشه لینکش رو بهم بدید
پیداش نمیکنم
در صفحه اصلی تالار بخش #C رو میبینین.