هل هناك طريقة لتعيين إعدادات البحث عن MS Office (2003) للاشتراكات غير الإنجليزية

StackOverflow https://stackoverflow.com/questions/1781538

  •  21-09-2019
  •  | 
  •  

سؤال

لنفترض أن هناك جدول بيانات أو جدول في MS Access يحتوي على أحرف غير إنجليزية (Dicritics) مثل à, á, â, ã, ä, å, æ, ç, è, é, ê, ë

نظرًا لأن هذا النظام يتم استخدامه من قبل مكبرات الصوت الإنجليزية ، لا يمكن للمستخدم النهائي ، عند البحث عن القيم ، تخمين ما إذا كان قد تم إدخال كلمات أو أسماء معينة في الإصدار الإنجليزية أو في الإصدار الأصلي.

إنه، días قد يتم إدخالها في الأصل في البيانات días أو dias. coñac قد يتم إدخال coñac أو conac. في الواقع في بعض الأحيان يتم إدخال البيانات بهذه الطريقة وأحيانًا في الاتجاه الآخر.

والسؤال هو ما إذا كانت هناك طريقة لتعيين خيارات البحث هذه ، لذلك ستجد آلية البحث المكتبية المدمجة (CTRL+F) días متى dias تم توفيره.

إذا لم يكن هناك ، أود أن أسمع ما هو نهجك لحل هذه المشكلة.

هل كانت مفيدة؟

المحلول

لا يمكن تخصيص سلوك حوار البحث عن واجهة المستخدم الرسومية في تطبيقات Office. ولكن إذا كنت في حذائك ، فإليك كيف سأحل المشكلة:

أولاً ، ستحتاج إلى بعض كود .NET الذي يؤدي عمليات البحث غير الحساسة للهجة. اعتمادًا على اللغة التي تحبها بشكل أفضل ، إليك عينة VB و C#. جوهر هذا هو استخدام CompareInfo.IndexOf الطريقة باستخدام معلمة CompareOptions. CompareOptions.IgnoreNonSpace. هذا هو بحث غير حساس لهجة.

بعد ذلك ، ستحتاج إلى الاتصال بهذا الرمز من تطبيق Office. تختلف كيفية توصيل الرمز في التطبيق حسب التطبيق- على سبيل المثال ، إليك منشورات مدونة توضح كيفية القيام بذلك من Excel و التمكن من.

ثم ستحتاج إلى لف تلك المكالمات حول الكود وواجهة المستخدم التي تحاكي البحث والاستبدال. هذا مرة أخرى سيكون مختلفا في كل تطبيق. على سبيل المثال ، في Excel ستحلق جميع الخلايا في ورقة العمل الحالية وتبحث عن المباريات باستخدام الكود الخاص بك.

أخيرًا ، تريد تعيين هذا الرمز إلى زر شريط الأدوات أو طريقة أخرى للحصول على الكود الخاص بك.

على أي حال ، آمل أن تكون هذه معلومات كافية لمساعدتك في البدء. إليك رمز .NET الأساسي في إما VB أو C# للقيام بمباريات غير حساسة للهجة:

VB

Module Module1
    Sub Main()
        ' returns: 3
        Dim pos As Integer = FindIgnoreDiacritics("àcçëñt-énäblêd", "en")
    End Sub
    Function FindIgnoreDiacritics(ByVal lookIn As String, ByVal lookFor As String) As Integer
        FindIgnoreDiacritics = System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(lookIn, lookFor, System.Globalization.CompareOptions.IgnoreNonSpace Or System.Globalization.CompareOptions.IgnoreCase)
    End Function
End Module

ج#

class Program
{
    static void Main(string[] args)
    {
        // returns: 3
        int pos = FindIgnoreDiacritics("àcçëñt-énäblêd", "en");
    }
    static int FindIgnoreDiacritics(string lookIn, string lookFor)
    {
        return System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(lookIn, lookFor,
            System.Globalization.CompareOptions.IgnoreNonSpace | System.Globalization.CompareOptions.IgnoreCase);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top