Beispiel #1
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            if (txtWord.Text.Length == 0)
            {
                MessageBox.Show("أدخل الكلمة المطلوب إضافتها في حقل الكلمة", "أدخل كلمة",
                                MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.RtlReading);
                return;
            }
            if (!Tashkeel.CheckTashkeel(Tashkeel.Remove(txtWord.Text), txtDiacritics.Text))
            {
                MessageBox.Show("التشكيل المدخل غير متوافق مع حروف الكلمة، يرجى التأكد من التشكيل", "خطأ في التشكيل",
                                MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.RtlReading);
                return;
            }
            Analyzer.con.Open();
            OleDbCommand com = new OleDbCommand();

            com.Connection  = Analyzer.con;
            com.CommandText = "select count(word) from ArabizedWords where word = '" + txtWord.Text + "'";
            byte Result = byte.Parse(com.ExecuteScalar().ToString());

            if (Result > 0)
            {
                MessageBox.Show("الكلمة المدخلة موجودة بالفعل ضمن ذاكرة التعلم!", "كلمة موجودة",
                                MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.RtlReading);
                return;
            }
            com.CommandText = string.Format("Insert into ArabizedWords values('{0}','{1}','{2}',{3})", Tashkeel.Remove(txtWord.Text), txtDiacritics.Text, WordMeaning, WordClass);
            com.ExecuteNonQuery();
            Analyzer.con.Close();
            DialogResult = true;
            Close();
        }
Beispiel #2
0
        public static List <string[]> CheckWordMask(string word, string mask, List <string> Meanings, List <string[]> Results)
        {
            OleDbCommand    com   = new OleDbCommand("select * from WordTemplates where Mask='" + mask + "'", Analyzer.con);
            OleDbDataReader dread = com.ExecuteReader();

            string[] fields;
            while (dread.Read())
            {
                //اختبار توافق تشكيل الوزن مع حروف الكلمة
                if (dread["Class"].ToString().StartsWith("V2"))//إذا كان وزن فعل مضارع
                {
                    if (!Tashkeel.CheckTashkeel(word, dread[1].ToString().Substring(1)))
                    {
                        continue;                                                                 //استثناء حرف المضارعة
                    }
                }
                else if (!Tashkeel.CheckTashkeel(word, dread[1].ToString()))
                {
                    continue;
                }
                //اختبار توافق نوع الوزن مع النوع المتوقع
                foreach (string M in Meanings)
                {
                    string MergedMeaning;
                    if (Interpreter.CompareMeanings(dread["Class"].ToString(), M, out MergedMeaning))
                    {
                        fields    = new string[8];
                        fields[0] = dread[0].ToString();
                        fields[1] = dread[1].ToString();
                        fields[2] = dread[2].ToString();
                        fields[3] = MergedMeaning;
                        fields[4] = dread[5].ToString();
                        fields[5] = dread[6].ToString();
                        fields[6] = dread[7].ToString();
                        fields[7] = dread[8].ToString();
                        Results.Add(fields);
                    }
                }
            }
            dread.Close();
            return(Results);
        }