منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
تحويل الحروف العريية الى الأنجليزية والعكس (تطبيق خدمة جوجل لتدقيق كلمات البحث) - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184)
+--- الموضوع : تحويل الحروف العريية الى الأنجليزية والعكس (تطبيق خدمة جوجل لتدقيق كلمات البحث) (/showthread.php?tid=4953)



تحويل الحروف العريية الى الأنجليزية والعكس (تطبيق خدمة جوجل لتدقيق كلمات البحث) - RaggiTech - 03-10-12

كاتب الموضوع : Programmation

الســـلام عليكم ورحمة الله وبركاته

إخـوانى الأعضـاء الكرام, كيف حال الجميع ؟

أسـأل الله العظيم أن تكونوا فى أفضل حال

سـأل الكثير عن كيفية تطبيق خدمة Google لتدقيق كلمات البحث بمعنى أخر إذا كنت تقوم بالبحث داخل محرك بحث Google عن منتدى فيجوال بيسيك للعرب وكانت محارف لوحة المفاتيح للغة لديك مفعلة للأنجليزية وضغط على زر البحث ستجده تلقائياً أضهر لك تحويل لكمات البحث الى الجملة التي تُريدها بالفعل مثل:

lkj]n td[,hg fdsd; gguvf

بعد التدقيق= هل تقصد: [u]منتدى فيجوال بيسيك للعرب[/u]

فالفكرة كلها أنه يبحث داخل الكلمات الدليلية الخاصة به وحينما يجد معني بعيد جدا لا يأتي لديه بنتائج فيخمن ذلك الأمر ويعرض عليك فلترة كمات بحثك الى اللغة الثانية لديك وهذا ما قمت بعمله اليوم.

لقد قمت بعمل Function توفر لك تنفيذ الأمر التالي واليوم أضعها بين يديكم فأسـأل الله العظيم أن تستفيدو منها

الدالة:


كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#dd0000]'Author Programmation(OmarNegm)
    Public Function Conversion(ByVal strSource As String) As String
        Const English As String = "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|]|[|'[/COLOR][color=#007700]|;|/|.|,|`[/color][COLOR=#0000bb]"
        Const Arabic As String = "ش|لا|ؤ|ي|ث|ب|ل|ا|ه|ت|ن|م|ة|ى|خ|ح|ض|ق|س|ف|ع|ر|ص|ء|غ|ئ|د|ج|ط|ك|ظ|ز|و|ذ"

        Dim arrEnglish() As String = Split(English, "|")
        Dim arrArabic() As String = Split(Arabic, "|")
        Dim arrSource() As String = Split(strSource, " ")
        Dim strFinal As String = ""
        Dim currChar As Char

        For J As Integer = 0 To arrSource.Count - 1 Step 1
            For I As Integer = 1 To Len(arrSource(J)) Step 1
                currChar = LCase(Mid$(arrSource(J), I, 1))
                If isArabicChar(currChar) = False Then
                    For H As Integer = 0 To arrEnglish.Count - 1 Step 1
                        If currChar = arrEnglish(H) Then
                            If strFinal.Trim = "" Then
                                strFinal = arrArabic(H)
                            Else
                                strFinal &= arrArabic(H)
                            End If

                        End If
                    Next
                Else
                    For H As Integer = 0 To arrArabic.Count - 1 Step 1
                        If currChar = arrArabic(H) Then
                            If strFinal.Trim = "" Then
                                strFinal = arrEnglish(H)
                            Else
                                strFinal &= arrEnglish(H)
                            End If
                        End If
                    Next
                End If
            Next
            strFinal &= " "
        Next
        Return strFinal
        arrEnglish = Nothing
        arrArabic = Nothing
        arrSource = Nothing
        strFinal = Nothing
    End Function
    Private Function isArabicChar(ByVal ccChar As Char) As Boolean
        Const AllChars As String = "ش|لا|ؤ|ي|ث|ب|ل|ا|ه|ت|ن|م|ة|ى|خ|ح|ض|ق|س|ف|ع|ر|ص|ء|غ|ئ|د|ج|ط|ك|ظ|ز|و|ذ"
        Dim arrChars() As String = Split(AllChars, "|")
        For I As Integer = 0 To arrChars.Count - 1 Step 1
            If ccChar = arrChars(I) Then
                Return True
                Exit Function
            End If
        Next
        Return False
        arrChars = Nothing
    End Function  
[/COLOR][/COLOR]

كما ترى أمامك دالتين الأولى () وهي الأساسية والثانية () لا تشغل بالك لها فهي دالة مُكملة إستخدمتها فى التحقق من كون الحروف المُمره عربية ام انجليزية حتى يتم تحويلها للعكس فلقد قمت بجعلها مرنه بحث إذا وجدت الحروف عربية تحولها الى الانجليزية ةإذا وجدتها انجليزية تحولها الى العربية اي يُمكن أن تقول English To Arabic To English

كيفية إستخدام الدالة :

فقط ضع الدالتين او الكود أعلاه داخل وحدة Module وبعدها يُمكنك إستدعائها من أي مكان داخل المشروع بالطريقة التالي فالدالة تحتوي على معامل واحد من نوع String تُمرر إليه القيمة التي تُريد تحويلها وتترك البقية على الدالة

مثال لأستخدام الدالة:



كود :
[color=#000000][COLOR=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]Conversion[/color][color=#007700]([/color][color=#0000bb]TextBox2[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

أو

كود :
[color=#000000][COLOR=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]Conversion[/color][color=#007700]([/color][color=#dd0000]"lkj]n td[,hg fdsd; gguvf"[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

أتمنى أن تستفيد من الدالة, وأنتظروا بإذن الله بعض التطوير فيها بحيث أضع فى الأعتبار أرفاق عليمات الترقيم الخاصة باللغة العربية داخلها وكذلك العودة بالحروف الـ Capital والـ Small كما هي بالنسبة للغة الأنجليزية

والســلام عليكم ورحمة الله وبركاته