PDA

View Full Version : سوال: پایش و یکسان سازی کاراکترها جداول



Rasool-GH
چهارشنبه 22 مهر 1394, 08:45 صبح
سلام خدمت دوستان

مشکل :
برای جستجو در یک جدول به دلیل یکسان نبودن کاراکترهای استفاده شده مشکلات زیادی وجود داره . به طور مثال یکسان نبودن ک فارسی و ک عربی یا حرف ی با ي

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

راه حل :
تابعی که بتونیم به وسیله اون مثلا به طور گروهی بگیم یک کد خاص از کاراکترها رو با یک کد دیگه جایگزین کنه چیه ؟

توضیح :
هر دو مرحله سوال و راه حل رو نیاز دارم .

به طور مثال جستجوی کلمه روشنایی و روشنائی در این نمونه مشکل سازه .

سوال بعدی این که در کد کوئری چه تغییری میشه داد که ضمن این که محدوده جستجو به سه کمبو باکس بالا محدود میشه در عین حال عبارات تایپ شده در سه باکس مستقل پایین هم در ستونهای مربوط به کمبو باکس ها جستجو بشه . به نظر نقض غرض میاد ولی منظور بالا بردن دقت هست . چیزی شبیه دو کوئری تو در تو میخوام البته در یک کوئری

alirezabahrami
چهارشنبه 22 مهر 1394, 11:27 صبح
سلام خدمت دوستان

مشکل : برای جستجو در یک جدول به دلیل یکسان نبودن کاراکترهای استفاده شده مشکلات زیادی وجود داره . به طور مثال یکسان نبودن ک فارسی و ک عربی یا حرف ی با ي
سوال : تابعی که همه کاراکترهای موجود در جدول رو بتونه تفکیک کنه و لیستی ارائه بده که نشون بده از چه کاراکترهایی استفاده شده چیه ؟
راه حل : تابعی که بتونیم به وسیله اون مثل به طور گروهی بگیم یک کد خاص از کاراکترها رو با یک کد دیگه جایگزین کنه چیه ؟
توضیح : هر دو مرحله سوال و راه حل رو نیاز دارم .

به طور مثال جستجوی کلمه روشنایی و روشنائی در این نمونه مشکل سازه .

سوال بعدی این که در کد کوئری چه تغییری میشه داد که ضمن این که محدوده جستجو به سه کمبو باکس بالا محدود میشه در عین حال عبارات تایپ شده در سه باکس مستقل پایین هم در ستونهای مربوط به کمبو باکس ها جستجو بشه . به نظر نقض غرض میاد ولی منظور بالا بردن دقت هست . چیزی شبیه دو کوئری تو در تو میخوام البته در یک کوئری

سلام
با استفاده از کد زیر ، ک و ی فارسی جایگزین ک و ی عربی در کل فیلدهای جدول table1 میشود :




Dim rs As Recordset
Dim fld As Field
Set rs = CurrentDb.OpenRecordset("table1")
Do While Not rs.EOF
rs.Edit
For Each fld In rs.Fields
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
Next
rs.Update
rs.MoveNext
Loop
rs.Close


یا علی

Rasool-GH
چهارشنبه 22 مهر 1394, 11:37 صبح
سلام .
برای بخش اول چی پیشنهاد میکنید ؟ یعنی تفکیک و تشخیص کلیه کاراکترهای استفاده شده در جدول
مشکل فقط با ک و ی نیست . چند حرف و کاراکتر دیگه هم این مشکلات رو دارند مثل و - ه

alirezabahrami
چهارشنبه 22 مهر 1394, 13:36 عصر
سلام .
برای بخش اول چی پیشنهاد میکنید ؟ یعنی تفکیک و تشخیص کلیه کاراکترهای استفاده شده در جدول
مشکل فقط با ک و ی نیست . چند حرف و کاراکتر دیگه هم این مشکلات رو دارند مثل و - ه
سلام
برای حروف دیگه هم میتوانید کد اسکی آنها را پیدا کنید و در کد بالا قرار بدهید .
یا علی

Rasool-GH
چهارشنبه 22 مهر 1394, 15:38 عصر
سلام . بله درسته ولی جدول دیتای خیلی زیادی داره به شکل سیستمی که یک روال استاندارد اجرا بشه میخوام این کار انجام بشه نه به صورت دستی .
مثلا ممکنه که 3 نوع "و" در جدول باشه . میخوام این مورد رو بتونم تشخیص بدم . وقتی همه کاراکترها بررسی شد بشه فهمید چندتا کاراکتر مشابه با کد اسکی متفاوت وجود داره

alirezabahrami
چهارشنبه 22 مهر 1394, 17:01 عصر
سلام . بله درسته ولی جدول دیتای خیلی زیادی داره به شکل سیستمی که یک روال استاندارد اجرا بشه میخوام این کار انجام بشه نه به صورت دستی .
مثلا ممکنه که 3 نوع "و" در جدول باشه . میخوام این مورد رو بتونم تشخیص بدم . وقتی همه کاراکترها بررسی شد بشه فهمید چندتا کاراکتر مشابه با کد اسکی متفاوت وجود داره
فکر کنم با استفاده از کد بالا ، لیست و تعداد کلماتی که هرکدام از حروف فوق در آن بکار رفته بدست آورد .

Rasool-GH
شنبه 25 مهر 1394, 17:45 عصر
سلام جناب بهرامی . لطف میکنید یک نمونه که به طور مثال تعداد یکی از حروف رو به همراه کد اسکی اون رو در یک لیست باکس نمایش بده قرار بدید .
ممنون میشم