コード例 #1
0
ファイル: ETEnOther.cs プロジェクト: YourChance/elundi
 private void GetTranslate(ref Slovo slovo)
 {
     SQLiteConnection connection = new SQLiteConnection(@"Data Source=dict.sqlitedb;Version=3;");
     connection.Open();
     SQLiteCommand command = new SQLiteCommand(connection);
     command.CommandText = "SELECT eng FROM dict WHERE el=@el";
     command.Parameters.Add(new SQLiteParameter("el", slovo.eSlovo));
     SQLiteDataReader reader = command.ExecuteReader();
     if (reader.HasRows)
     {
         reader.Read();
         if (!reader.IsDBNull(0))
         {
             slovo.enSlovo.slovo = reader.GetString(0);
         }
         else
         {
             slovo.enSlovo.slovo = "[Нет перевода]";
         }
     }
     else
     {
         slovo.enSlovo.slovo = "[Нет перевода]";
     }
     reader.Close();
     connection.Close();
 }
コード例 #2
0
ファイル: ETRPredlog.cs プロジェクト: YourChance/elundi
        private void SetExtraData(ref Slovo slovo)
        {
            Predlog predlog = new Predlog();

            predlog.english = slovo.enSlovo.slovo;
            slovo.ExtraData = predlog;
        }
コード例 #3
0
 protected void PreAnalyze(Predlozhenie pr, int place, ref Slovo slovo)
 {
     AnalyzeDeeprich(pr, place, ref slovo);
     // FindOsnova(ref slovo);
     //GetTranslate(ref slovo);
     Processing(ref slovo);
     SetExtraData(ref slovo);
 }
コード例 #4
0
 protected void PreAnalyze(Predlozhenie pr, int place, ref Slovo slovo)
 {
   //  AnalyzeCharacteristicsFromNoun(pr, place, ref slovo);
     AnalyzeStepenSravnenia(ref slovo);
     FindOsnova(ref slovo);
     //GetTranslate(ref slovo);
     SetExtraData(ref slovo);
 }
コード例 #5
0
ファイル: ETEnNoun.cs プロジェクト: YourChance/elundi.diplom
		protected void PreAnalyze(Predlozhenie pr,int place,ref Slovo slovo)
		{
			AnalyzePadezh(pr,place,ref slovo);
			AnalyzeChislo(ref slovo);
			AnalyzeRod(ref slovo);
			FindOsnova(ref slovo);
            //GetTranslate(ref slovo);
            SetExtraData(ref slovo);
		}
コード例 #6
0
 private void SetExtraData(ref Slovo slovo)
 {
     Deeprichastie deepr = new Deeprichastie();
     deepr.english = slovo.enSlovo.slovo;
     deepr.vremya = slovo.vremya;
     deepr.zalog = slovo.zalog;
     deepr.osnova = slovo.eSlovo;
    // deepr.new_engl = slovo.new_slovo;
     slovo.ExtraData = deepr;
 }
コード例 #7
0
ファイル: ETEnNoun.cs プロジェクト: YourChance/elundi.diplom
 private void SetExtraData(ref Slovo slovo)
 {
     
     Noun noun = new Noun();
     noun.chislo = slovo.chislo;
     noun.padezh = slovo.padezh;
     noun.rod = slovo.rod;
     noun.osnova = slovo.eSlovo;
     noun.english = slovo.enSlovo.slovo;
     slovo.ExtraData = noun;
 }
コード例 #8
0
  private void SetExtraData(ref Slovo slovo)
  {
      Prilagatelnoe prilag= new Prilagatelnoe();
      prilag.chislo = slovo.chislo;
      prilag.stepenSravneniya = slovo.stepenSravneniya;
      prilag.padezh = slovo.padezh;
      prilag.rod = slovo.rod;
      prilag.osnova = slovo.eSlovo;
      prilag.english = slovo.enSlovo.slovo;
      slovo.ExtraData = prilag;  
        
 }   
コード例 #9
0
 private void SetExtraData(ref Slovo slovo)
 {
     Glagol glagol = new Glagol();
     glagol.vremya = slovo.vremya;
     glagol.zalog = slovo.zalog;
     glagol.naklonenie = slovo.naklonenie;
     glagol.vid = slovo.vid;
     glagol.sostoyanie = slovo.sostoynie;
     glagol.chislo = slovo.chislo;
     glagol.lico = slovo.lico;
     glagol.english = slovo.enSlovo.slovo;
     slovo.ExtraData = glagol;
 }
コード例 #10
0
ファイル: ETEnOther.cs プロジェクト: YourChance/elundi
        private void CopyCharact(Predlozhenie pr, int place, ref Slovo analyzed)
        {
            int i = (place - 4 >= 0 ? place - 4 : 0);
            int max = (place + 4 > pr.Count ? pr.Count : place + 4);
            while (i < max)
            {
                Slovo slovpoisk = pr[i];
                if (slovpoisk.chastRechi == ChastRechi.Suschestvitelnoe)
                {

                    break;
                }
                else i++;
            }
        }
コード例 #11
0
 private void GetTranslate(ref Slovo slovo)
 {
     string stroka = perevod(slovo.eSlovo);
     if (stroka == "")
     {
         string[] temp = slovo.eSlovo.Split('-');
         string str = slovo.eSlovo;
         string str1 = "";
         if (temp.Length == 1) str1 = "R-"; else str1 = "R";
         char[] st = str.ToCharArray();
         for (int i = 1; i < st.Length; i++)
             str1 = str1 + st[i].ToString();
         stroka = perevod(str1);
     }
     slovo.enSlovo.slovo = stroka;
 }
コード例 #12
0
        protected void AnalyzeCharacteristicsFromNoun(Predlozhenie pr, int place, ref Slovo analyzed)
        {
            // поиск в предложении существительного
            //и копировaние его хaрaктеристик (родa, числa, пaдежa) Прилaгaтельное
            int max = place + 4 > pr.Count - 1 ? pr.Count - 1 : place + 4;
            int min = place - 4 > 0 ? place - 4 : 0;

            if ((analyzed.chastRechi == ChastRechi.Prilagatelnoe || analyzed.chastRechi == ChastRechi.Prichastie) && pr.Count > 1)
            {
                Hashtable sush = new Hashtable();
                for (int i = min; i < max; i++)
                {
                    Slovo slovpoisk = pr[i];
                    if (slovpoisk.chastRechi == ChastRechi.Suschestvitelnoe)
                    {
                        sush[i] = slovpoisk;
                        //System.Windows.Forms.MessageBox.Show(slovpoisk.rSlovo);
                    }
                }
                Slovo res = null;
                int minres = 999;

                foreach (int j in sush.Keys)
                {
                    if (Math.Abs(place - j) < minres || (Math.Abs(place - j) == minres && j > place))
                    {
                        res = (Slovo)sush[j];
                        minres = Math.Abs(place - j);
                    }
                }
                if (res != null)
                {
                    analyzed.chislo = res.chislo;
                    analyzed.padezh = res.padezh;
                    analyzed.rod = res.rod;
                }
                else
                {
                    analyzed.chislo = Chislo.Edinstvennoe;
                    analyzed.padezh = Padezh.Imenitelnij;
                    analyzed.rod = Rod.Muzhskoj;
                }
            }
 
        }
コード例 #13
0
 private void GetTranslate(Predlozhenie pr, int place, ref Slovo slovo)
 {
     this.slovo = slovo;
     SQLiteConnection connection = new SQLiteConnection(@"Data Source=dict.sqlitedb;Version=3;");
     connection.Open();
     SQLiteCommand command = new SQLiteCommand(connection);
     command.CommandText = "SELECT eng FROM dict WHERE el=@el";
     command.Parameters.Add(new SQLiteParameter("el", slovo.eSlovo));
     SQLiteDataReader reader = command.ExecuteReader();
     if (reader.HasRows && reader.Read() && !reader.IsDBNull(0))
     {
         slovo.enSlovo.slovo = Processing(reader.GetString(0), pr, place);
     }
     else
     {
         slovo.enSlovo.slovo = " [Нет перевода для " + slovo.eSlovo + "] ";
     }
     reader.Close();
     connection.Close();
 }
コード例 #14
0
ファイル: ETEnNoun.cs プロジェクト: YourChance/elundi
 protected void AnalyzeChislo(ref Slovo slovo)
 {
     switch(slovo.eSlovo[0])
     {
         case 'Q':
             slovo.chislo = Chislo.Edinstvennoe;
             if (slovo.eSlovo.IndexOf("QBA") + 3 == slovo.eSlovo.Length - 1)
                 slovo.chislo = Chislo.Odinochnoe;
             if (slovo.eSlovo.IndexOf("WBA") + 3 == slovo.eSlovo.Length - 1)
                 slovo.chislo = Chislo.Malochislennoe;
             break;
         case 'W':
             slovo.chislo = Chislo.Mnozhestvennoe;
             if (slovo.eSlovo.IndexOf("QBA") + 3 == slovo.eSlovo.Length - 1)
                 slovo.chislo = Chislo.Neopredelennoe;
             if (slovo.eSlovo.IndexOf("WBA") + 3 == slovo.eSlovo.Length - 1)
                 slovo.chislo = Chislo.Mnogoobraznoe;
             break;
         default:
             // здесь будет обработка ошибок
             break;
     }
 }
コード例 #15
0
 protected void AnalyzeDeeprich(Predlozhenie pr, int place, ref Slovo slovo)
 {
     string[] temp = slovo.eSlovo.Split('-');
     if (temp[0].Length == 1 && temp.Length > 1)
     {
         switch (temp[1])
         {
             //совершенный вид
             case "RBA":
                 slovo.vremya = Vremya.Postoyannoe;
                 break;
             case "TBA":
                 slovo.vremya = Vremya.Nastoyaschee;
                 break;
             case "YBA":
                 slovo.vremya = Vremya.Proshedshee;
                 break;
             case "UBA":
                 slovo.vremya = Vremya.Buduschee;
                 break;
             default: break;
         }
     }
 }
コード例 #16
0
 protected void AnalyzeStepenSravnenia(ref Slovo slovo)
 {
     slovo.stepenSravneniya = StepenSravneniya.Polozhitelnaya;
 }
コード例 #17
0
ファイル: ETEnNoun.cs プロジェクト: YourChance/elundi.diplom
		protected void AnalyzePadezh(Predlozhenie pr,int place,ref Slovo slovo)
		{
			int i = place-1;
			
			while(i>0 && (pr[i].chastRechi == ChastRechi.Prilagatelnoe || pr[i].chastRechi == ChastRechi.Prichastie || pr[i].chastRechi == ChastRechi.Mestoimenie))
			{
				i = i-1;
			}
			
			if(pr[i]!=null && pr[i].chastRechi == ChastRechi.Predlog)
			{
				Slovo predlog = pr[i];
				switch(predlog.eSlovo)
				{
					case "FF":
						slovo.padezh = Padezh.Vinitelnij;
						break;
					case "FQV":
					case "FJB":
						slovo.padezh = Padezh.Prityazhatelnij;
						break;
					case "FZP":
						slovo.padezh = Padezh.Datelnij;
						break;
					case "FT":
						slovo.padezh = Padezh.Tvoritelnij;						
						break;
					case "FR":
						slovo.padezh = Padezh.Instrumentalnij;
						break;
					case "FZJ":
						slovo.padezh = Padezh.Prisvyazochnij;
						break;
					case "FOB":
						slovo.padezh = Padezh.Dejstviya;
						break;
					case "FZO":
						slovo.padezh = Padezh.Predmeta;
						break;
					case "FZE":
						slovo.padezh = Padezh.Napravleniya;
						break;
					case "FA":
						slovo.padezh = Padezh.Mestoprebivaniya;
						break;
					case "FWV":
						slovo.padezh = Padezh.Obrasheniya;
						break;
					case "FSVE":
						slovo.padezh = Padezh.Avtora;
						break;
					case "FRZF":
						slovo.padezh = Padezh.Nazvaniya;
						break;
					case "FVA":
						slovo.padezh = Padezh.Celi;
						break;
					case "FFVY":
						slovo.padezh = Padezh.Prichini;
						break;
					case "FFV":
						slovo.padezh = Padezh.Sledstviya;
						break;					
				}
			}
			else
			{
				slovo.padezh = Padezh.Imenitelnij;
			}				
		}
コード例 #18
0
ファイル: ETRPredlog.cs プロジェクト: YourChance/elundi
 protected void PreAnalyze(Predlozhenie pr, int place, ref Slovo slovo)
 {
     GetTranslate(ref slovo);
     SetExtraData(ref slovo);
 }
コード例 #19
0
       /* public void Vremia_eng()
        {
            switch (slovo.vremya)
            {
                case Vremya.BuduscheeDalekoe:
                case Vremya.BuduscheeDlitelnoe:
                case Vremya.BuduscheeVNastoyaschem:
                case Vremya.BuduscheeSProshedshim:
                    slovo.vremya = Vremya.Buduschee;
                    break;
                case Vremya.NastoyascheeDlitelnoe:
                case Vremya.NastoyascheeSBuduschim:
                case Vremya.NastoyascheeSProshedshim:
                case Vremya.NastoyascheeVNastoyaschem:
                case Vremya.Postoyannoe:
                    slovo.vremya = Vremya.Nastoyaschee;
                    break;
                case Vremya.ProshedsheeBuduscheeBezNastoyaschego:
                case Vremya.ProshedsheeDlitelnoe:
                case Vremya.ProshedsheeSNastoyaschim:
                case Vremya.Davnoproshedshee:
                    slovo.vremya = Vremya.Proshedshee;
                    break;
                default:
                    break;
            }
        }*/

        protected void AnalyzeCharacteristicsFromNoun(Predlozhenie pr, int place, ref Slovo analyzed)
        {
            // поиск в предложении существительного
            //и копировaние его хaрaктеристик (числa)
            int max = place + 4 > pr.Count - 1 ? pr.Count - 1 : place + 4;
            int min = place - 4 > 0 ? place - 4 : 0;
            int such = 0;

            if (analyzed.chastRechi == ChastRechi.Glagol && pr.Count > 1)
            {
                Hashtable sush = new Hashtable();
                for (int i = min; i < max; i++)
                {
                    Slovo slovpoisk = pr[i];
                    if (slovpoisk.chastRechi == ChastRechi.Suschestvitelnoe)
                    {
                        sush[i] = slovpoisk; such = 1;
                    }
                    else if (slovpoisk.chastRechi == ChastRechi.Mestoimenie)
                        such = 2;
                }
                Slovo res = null;
                int minres = 999;

                foreach (int j in sush.Keys)
                {
                    if (Math.Abs(place - j) < minres || (Math.Abs(place - j) == minres && j > place))
                    {
                        res = (Slovo)sush[j];
                        minres = Math.Abs(place - j);
                    }
                }
                if (res != null)
                {
                    if (such == 1)
                    {
                        analyzed.chislo = res.chislo;
                        analyzed.lico = Lico.Третье;
                    }
                    else if (such == 2)
                    {
                        if (res.eSlovo == "Q-" || res.eSlovo == "Q-Q") //местоимение "Я"
                        {
                            analyzed.chislo = Chislo.Edinstvennoe;
                            analyzed.lico = Lico.Первое;
                        }
                        else if (res.eSlovo == "Y") //местоимение "Мы"
                        {
                            analyzed.chislo = Chislo.Mnozhestvennoe;
                            analyzed.lico = Lico.Первое;
                        }
                        else if (res.eSlovo == "W" || res.eSlovo == "U") //местоимение "Ты,Вы"
                        {
                            analyzed.chislo = Chislo.Mnozhestvennoe;
                            analyzed.lico = Lico.Второе;
                        }
                        else if (res.eSlovo == "E-" || res.eSlovo == "T-" || res.eSlovo == "R-") //местоимение "Он,Она,Оно"
                        {
                            analyzed.chislo = Chislo.Edinstvennoe;
                            analyzed.lico = Lico.Третье;
                        }
                        else if (res.eSlovo == "I-") //местоимение "Они"
                        {
                            analyzed.chislo = Chislo.Mnozhestvennoe;
                            analyzed.lico = Lico.Третье;
                        }
                    }
                }
                else
                {
                    analyzed.chislo = Chislo.Edinstvennoe;
                    analyzed.lico = Lico.Третье;
                }
                if (analyzed.chislo == Chislo.Odinochnoe || analyzed.chislo == Chislo.Odinochnoe)
                    analyzed.chislo = Chislo.Edinstvennoe;
                else if (analyzed.chislo == Chislo.Neopredelennoe || analyzed.chislo == Chislo.Mnogoobraznoe)
                    analyzed.chislo = Chislo.Mnozhestvennoe;
            }

        }
コード例 #20
0
ファイル: ETEnOther.cs プロジェクト: YourChance/elundi.diplom
 protected void PreAnalyze(Predlozhenie pr, int place, ref Slovo slovo)
 {
     //CopyCharact(pr, place, ref slovo);
     //GetTranslate(ref slovo);
     SetExtraData(ref slovo);
 }
コード例 #21
0
ファイル: ETEnNoun.cs プロジェクト: YourChance/elundi.diplom
		protected void AnalyzeRod(ref Slovo slovo)
		{
			slovo.rod = Rod.Obshij;
			if (slovo.eSlovo.IndexOf("]") + 1 == slovo.eSlovo.Length - 1)
			{
				slovo.rod = Rod.Muzhskoj;
			}
            if (slovo.eSlovo.IndexOf("[") + 1 == slovo.eSlovo.Length - 1)
			{
				slovo.rod = Rod.Zhenskij;
			}
            if (slovo.eSlovo.IndexOf("EVA") + 3 == slovo.eSlovo.Length - 1)
			{
				slovo.rod = Rod.Muzhskoj;
			}
            if (slovo.eSlovo.IndexOf("RVA") + 3 == slovo.eSlovo.Length - 1)
			{
				slovo.rod = Rod.Zhenskij;
			}
		}
コード例 #22
0
ファイル: ETEnNoun.cs プロジェクト: YourChance/elundi.diplom
		protected void FindOsnova(ref Slovo slovo)
		{
			osnova = slovo.eSlovo;
			osnova = osnova.Replace("EVA","");
			osnova = osnova.Replace("RVA","");
			osnova = osnova.Replace("QBA","");
			osnova = osnova.Replace("WBA","");
			
			if(osnova.Length>3 && osnova.Substring(0,2)==osnova.Substring(2,2))	
				osnova = osnova.Remove(0,2);
			if(osnova[0] == 'W')
				osnova = "Q"+osnova.Substring(1);
			while(osnova[osnova.Length-1]=='-')
			{
				osnova = osnova.Remove(osnova.Length-1,1);
			}
            slovo.eSlovo = osnova;
		}
コード例 #23
0
ファイル: ETEnOther.cs プロジェクト: YourChance/elundi
 private void SetExtraData(ref Slovo slovo)
 {
     Mestoimenie mestoimenie = new Mestoimenie();
     mestoimenie.english = slovo.enSlovo.slovo;
     slovo.ExtraData = mestoimenie;
 }
コード例 #24
0
 private void Processing(ref Slovo slovo)
 {
     string stroka = "";
     char[] znak = slovo.enSlovo.slovo.ToCharArray();
     if (znak[znak.Length - 1] != 'g' & znak[znak.Length - 2] != 'n' & znak[znak.Length - 3] != 'i')
     {
         stroka = slovo.enSlovo.slovo.ToString();
         if (stroka != "be")
         {
             SQLiteConnection con = new SQLiteConnection(@"Data Source=non_verbs.sqlitedb;Version=3;");
             con.Open();
             SQLiteCommand com = new SQLiteCommand(con);
             com.CommandText = "SELECT v4 FROM verbs WHERE v1=@str";
             com.Parameters.Add(new SQLiteParameter("str", stroka));
             SQLiteDataReader reader = com.ExecuteReader();
             if (reader.HasRows)
             {
                 reader.Read();
                 if (!reader.IsDBNull(0))
                 {
                     stroka = reader.GetString(0);
                 }
             }
             else
             {
                 char[] slovo1 = stroka.ToCharArray();
                 if (slovo1[slovo1.Length - 1] == 'e')
                 {
                     for (int i = 0; i < slovo1[slovo1.Length - 1]; i++)
                         stroka = stroka + slovo1[i].ToString();
                     stroka = stroka + "ing";
                 }
                 else if (slovo1[slovo1.Length - 1] == 'e' && slovo1[slovo1.Length - 2] == 'i')
                 {
                     stroka = slovo1[0].ToString();
                     for (int i = 1; i < slovo1.Length - 2; i++)
                         stroka = stroka + slovo1[i].ToString();
                     stroka = stroka + "ying";
                 }
                 else if (slovo1[slovo1.Length - 1] == 'n' && slovo1[slovo1.Length - 2] != 'n' || slovo1[slovo1.Length - 1] == 'p' && slovo1[slovo1.Length - 2] != 'p' || slovo1[slovo1.Length - 1] == 't' && slovo1[slovo1.Length - 2] != 't' || slovo1[slovo1.Length - 1] == 'l' && slovo1[slovo1.Length - 2] != 'l')
                 {
                     if (slovo1[slovo1.Length - 2] == 'o' || slovo1[slovo1.Length - 1] == 'a' || slovo1[slovo1.Length - 1] == 'e' || slovo1[slovo1.Length - 1] == 'u' || slovo1[slovo1.Length - 1] == 'i' || slovo1[slovo1.Length - 1] == 'y')
                     {
                         if (slovo1[slovo1.Length - 3] != 'o' || slovo1[slovo1.Length - 3] != 'a' || slovo1[slovo1.Length - 3] != 'e' || slovo1[slovo1.Length - 3] != 'u' || slovo1[slovo1.Length - 3] != 'i' || slovo1[slovo1.Length - 3] != 'y')
                             stroka = stroka + slovo1[slovo1.Length - 1] + "ing";
                     }
                     else
                         stroka = stroka + "ing";
                 }
                 /* else if (slovo1[slovo1.Length-1] == 'r')
                      stroka = stroka + slovo1[slovo1.Length - 1] + "ed";*/
                 else
                     stroka = stroka + "ing";
             }
             reader.Close();
             con.Close();
         }
     }
     //slovo.new_slovo = stroka;
 }
コード例 #25
0
        protected void FindOsnova(ref Slovo slovo)
        {
            //отрубaем от словa все суффиксы и т.д.,
            //чтобы получить форму словa кaк в словaре
            if (slovo.chastRechi == ChastRechi.Prilagatelnoe)
                osnova = slovo.eSlovo;
            if (slovo.chastRechi == ChastRechi.Prichastie)
            {
                osnova = slovo.eSlovo;

                osnova = osnova.Replace("-SVA", "");   // взaимный зaлог
                osnova = osnova.Replace("-TYU", "");  // Нaстоящее время
                osnova = osnova.Replace("-YYU", "");  // Прошедшее время
                osnova = osnova.Replace("-UYU", "");  // Будущее время
                osnova = osnova.Replace("-RBA", "");  // для постоянного или длительного времени
                osnova = osnova.Replace("-TBA", "");  // для нaстоящего времени
                osnova = osnova.Replace("-YBA", "");  // для прошедшего времени
                osnova = osnova.Replace("-UBA", "");  // для будущего времени
                osnova = osnova.Replace("-RBY", "");  // Однокрaтность
                osnova = osnova.Replace("-SCY", "");  // Нaчaло действия
                osnova = osnova.Replace("-PVI", "");  // Огрaничение длительности
                osnova = osnova.Replace("-PVS", "");  // Неопределеннaя длительность
                osnova = osnova.Replace("-RBA", "");  // Постояннaя длительность
                osnova = osnova.Replace("-UCS", "");  // Незaвершенность действия

                if (osnova[osnova.Length - 1] == 'J' && osnova[osnova.Length - 2] == '-')
                    osnova = osnova.Remove(osnova.Length - 2, 2);       // Повелительное нaклонение
                if (osnova[1] == 'S' && osnova[2] == '-')              //зaвершенность действия
                    osnova = osnova.Remove(1, 1);
                if (osnova[osnova.Length - 1] == 'S' && osnova[osnova.Length - 2] == '-')
                    osnova = osnova.Remove(osnova.Length - 2, 2);       //зaвершенность

                /*
                if (osnova[1] == 'A' && osnova[2] == '-')                   //Возврaтный зaлог
                    osnova = osnova.Remove(1, 1);*/
                if (osnova[osnova.Length - 1] == 'A')
                    osnova = osnova.Remove(osnova.Length - 2, 2);       //Возврaтный зaлог


                if (osnova[osnova.Length - 1] == 'F' && osnova[osnova.Length - 2] == '-')
                    osnova = osnova.Remove(osnova.Length - 1, 1);       //Стрaдaтельный зaлог


                /*      for (int i = 0; i < osnova.Length; i++)
                      {
                          if (osnova[i] == '-')
                          {
                              osnova = osnova.Remove(i, 1);
                              i--;
                          }
                      }
       * */
                osnova = osnova.Remove(0, 1);
                osnova = "R" + osnova;
                //MessageBox.Show(osnova);
            }


            /*
             * Это пример того, кaк я рубил
             * суффиксы у существительных
            osnova = osnova.Replace("EVA","");
            osnova = osnova.Replace("RVA","");
            osnova = osnova.Replace("QBA","");
            osnova = osnova.Replace("WBA","");			
			
            if(osnova.Substring(0,2)==osnova.Substring(2,2))	
                osnova = osnova.Remove(0,2);
            */
            /*while(osnova[osnova.Length-1]=='-')
            {
                osnova = osnova.Remove(osnova.Length-1,1);
            }*/
        }
コード例 #26
0
ファイル: ETEnGlagol.cs プロジェクト: YourChance/elundi
 protected void AnalyzeGlagol(Predlozhenie pr, int place, ref Slovo slovo)
 {
     // if (c.eSlovo.Length < 2) return c;
     bool Zaver = false;
        /* slovo.zalog = Zalog.Dejstvitekniy;//настройки по умолчанию
     slovo.chastRechi = ChastRechi.Glagol;//настройки по умолчанию
     slovo.sostoynie = Sostoynie.Обычное;//настройки по умолчанию
     slovo.chislo = Chislo.Edinstvennoe;//настройки по умолчанию
     slovo.rod = Rod.Obshij;//настройки по умолчанию
     if (slovo.eSlovo[1] == 'A') slovo.zalog = Zalog.Vozvratniy;*/
     if (slovo.eSlovo.Length > 3) if (slovo.eSlovo[2] == '-' && slovo.eSlovo[1] == 'S')
         {
             slovo.vid = Vid.Zavershennost;
             Zaver = true;
         }
        // NaklSoslag();
     string[] temp = slovo.eSlovo.Split('-');
     if (temp[0].Length == 1 && temp.Length > 1)
     {
         switch (temp[1])
         {
             //совершенный вид
             case "RBY": //[туко]
                 slovo.vid = Vid.Mgnovennost;
                 break;
             case "SCY"://[роко]
                 slovo.vid = Vid.NachaloDejstviya;
                 break;
             case "PVI"://[пэсо]:
                 slovo.vid = Vid.OgranichenieDlitelnosti;
                 break;
             //несовершенный вид
             case "PVS"://[пэро]
                 slovo.vid = Vid.NeopredelennayaDlitelnost;
                 break;
             case "RBA"://[тудо]
                 slovo.vid = Vid.PostoyannayaDlitelnost;
                 break;
             case "UCS"://[шоро]
                 slovo.vid = Vid.NezavershennostDejstviya;
                 break;
             default: break;
         }
     }
     for (int i = 1; i < temp.Length; i++)
     {
         switch (temp[i])
         {
             //определение дополнительных времён
             case "RBA"://постоянное(длительное)
                 switch (temp[0][0])
                 {
                     case 'T':
                         slovo.vremya = Vremya.NastoyascheeDlitelnoe;
                         break;
                     case 'Y':
                         slovo.vremya = Vremya.ProshedsheeDlitelnoe;
                         break;
                     case 'U':
                         slovo.vremya = Vremya.BuduscheeDlitelnoe;
                         break;
                     default: break;
                 }
                 break;
             case "TBA"://наст
                 switch (temp[0][0])
                 {
                     case 'T':
                         slovo.vremya = Vremya.NastoyascheeVNastoyaschem;
                         break;
                     case 'Y':
                         slovo.vremya = Vremya.ProshedsheeSNastoyaschim;
                         break;
                     case 'U':
                         slovo.vremya = Vremya.BuduscheeVNastoyaschem;
                         break;
                     default: break;
                 }
                 break;
             case "YBA"://прош
                 switch (temp[0][0])
                 {
                     case 'T':
                         slovo.vremya = Vremya.NastoyascheeSProshedshim;
                         break;
                     case 'Y':
                         slovo.vremya = Vremya.Davnoproshedshee;
                         break;
                     case 'U':
                         slovo.vremya = Vremya.BuduscheeSProshedshim;
                         break;
                     default: break;
                 }
                 break;
             case "UBA"://буд
                 switch (temp[0][0])
                 {
                     case 'T':
                         slovo.vremya = Vremya.NastoyascheeSBuduschim;
                         break;
                     case 'Y':
                         slovo.vremya = Vremya.ProshedsheeBuduscheeBezNastoyaschego;
                         break;
                     case 'U':
                         slovo.vremya = Vremya.BuduscheeDalekoe;
                         break;
                     default: break;
                 }
                 break;
             //определение залога
             case "A":
                 slovo.zalog = Zalog.Vozvratniy;
                 break;
             case "F":
                 slovo.zalog = Zalog.Stradatelniy;
                 break;
             case "SBA":
                 slovo.zalog = Zalog.Vzaimniy;
                 break;
             //определение наклонения
             case "J":
                 slovo.naklonenie = Naklonenie.Povelitelnoe;
                 break;
             //определение вида
             //совершенный вид
             case "S"://[ро]
                 if (!Zaver) slovo.vid = Vid.Zavershennost;
                 else slovo.vid = Vid.NevozvratnayaZavershennost;
                 break;
             //состояние
             case "TVY"://[чэко]
                 slovo.sostoynie = Sostoynie.Безличное;
                 break;
             default: break;
         }
     }
     logOsnovaEl += "\n***Характеристики*** " + "\nЧисло: " + slovo.chislo.ToString() + "\nНаклонение: " + slovo.naklonenie.ToString() + "\nРод: " + slovo.rod.ToString() + "\nСостояние: " + slovo.sostoynie.ToString() + "\nВид: " + slovo.vid.ToString() + "\nВремя: " + slovo.vremya.ToString() + "\nЗалог: " + slovo.zalog.ToString();
 }
コード例 #27
0
ファイル: shared.cs プロジェクト: YourChance/elundi
 public void AddSlovo(Slovo s)
 {
     slova.Add(s);
 }
コード例 #28
0
ファイル: shared.cs プロジェクト: YourChance/elundi
 public void SetSlovo(Slovo s,int i)
 {
     slova[i] = s;
 }
コード例 #29
0
 protected void PreAnalyze(Predlozhenie pr, int place, ref Slovo slovo)
 {
     AnalyzeCharacteristicsFromNoun(pr, place, ref slovo);
     AnalyzeGlagol(pr, place, ref slovo);
     SetExtraData(ref slovo);
 }