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++; } if (i != pr.Count) { analyzed.ruSlovo.ruChislo = pr[i].ruSlovo.ruChislo; analyzed.ruSlovo.ruPadezh = pr[i].ruSlovo.ruPadezh; analyzed.ruSlovo.ruRod = pr[i].ruSlovo.ruRod; //throw new Exception( pr[i].rSlovo); } else { analyzed.ruSlovo.ruChislo = RuChislo.Edinstvennoe; analyzed.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; analyzed.ruSlovo.ruRod = RuRod.Muzhskoj; } }
public Slovo Translate(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; bool translated = false; if(analyzed.eSlovo == "FQV" || analyzed.eSlovo == "FZJ" || analyzed.eSlovo == "FZP") { analyzed.rSlovo = ""; translated = true; } else if(analyzed.eSlovo == "FT") { if(place-1>0 && pr[place-1].eSlovo[0] != 'Q') { analyzed.rSlovo = ""; translated = true; } } if(!translated) { Dictionary dict = new Dictionary(); ArrayList al = dict.GetStrict(analyzed.eSlovo); if(al.Count > 0) { analyzed.rSlovo = ((DictSlovo)al[0]).Rus; } else { analyzed.rSlovo = analyzed.eSlovo; } } return analyzed; }
public Slovo Translate(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; Sklonenie(ref analyzed); return analyzed; }
protected void PreAnalyze(Predlozhenie pr,int place,ref Slovo slovo) { AnalyzePadezh(pr,place,ref slovo); AnalyzeChislo(ref slovo); AnalyzeRod(ref slovo); FindOsnova(ref slovo); TranslateOsnova(ref slovo); }
public Slovo Analyze(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; PreAnalyze(pr,place,ref analyzed); PostAnalyze(pr,place,ref analyzed); return analyzed; }
public Slovo Translate(Predlozhenie pr, int place) { Slovo analyzed = pr[place]; //AnalyzeCharacteristicsFromNoun(pr, place, ref analyzed); if (pr[place].chastRechi == ChastRechi.Prilagatelnoe) Sklonenie(ref analyzed); if (pr[place].chastRechi == ChastRechi.Prichastie) SpryajeniePrich(ref analyzed); return analyzed; }
public Slovo Analyze(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; //if(analyzed.chastRechi == ChastRechi.Mestoimenie) CopyCharact(pr,place,ref analyzed); return analyzed; }
public Slovo Analyze(Predlozhenie pr, int place) { Slovo analyzed = pr[place]; //AnalyzeStepenSravnenia(ref analyzed); AnalyzeCharacteristicsFromNoun(pr, place, ref analyzed); FindOsnova(ref analyzed); TranslateOsnova(ref analyzed); return analyzed; }
public void TranslateOsnova(ref Predlozhenie pr,ref Slovo slovo) { ArrayList al = pr.Dict.GetStrictRusEx(slovo.eSlovo); if(al.Count > 0) { slovo.eSlovo = ((DictSlovo)al[0]).El; } else { slovo.eSlovo = pr.Dict.CreateNewSlovoEx(slovo); } }
public Slovo Translate(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; TranslateOsnova(ref pr,ref analyzed); Chislo(ref analyzed); Rod(ref analyzed); Padezh(ref pr,place,ref analyzed); pr.SetSlovo(analyzed,place); return analyzed; }
public void Padezh(ref Predlozhenie pr,int place, ref Slovo slovo) { string ppred = ""; switch(slovo.ruSlovo.ruPadezh) { case RuPadezh.Imenitelniy: break; case RuPadezh.Roditelniy: ppred = "FQV"; break; case RuPadezh.Vinitelniy: ppred = "FF"; break; case RuPadezh.Datelniy: ppred = "FZP"; break; case RuPadezh.Tvoritelniy: ppred = "FT"; break; case RuPadezh.Predlozhniy: ppred = "FZJ"; break; } int i = place-1; while(i>0 && (pr[i].chastRechi == ChastRechi.Prichastie || pr[i].chastRechi == ChastRechi.Prilagatelnoe || pr[i].chastRechi == ChastRechi.Mestoimenie)) { i= i-1; } if(i>=0 && pr[i].chastRechi != ChastRechi.Predlog) { Slovo ts = pr[i]; ts.eSlovo = ts.eSlovo + " "+ppred; pr.SetSlovo(ts,i); } else { if(i>=0 && pr[i].eSlovo != ppred) { Slovo ts = pr[i]; ts.eSlovo = ts.eSlovo + " "+ppred; pr.SetSlovo(ts,i); } } }
public Slovo Translate(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; ArrayList al = pr.Dict.GetStrictRusEx(analyzed.eSlovo); if(al.Count > 0) { analyzed.eSlovo = ((DictSlovo)al[0]).El; } else { analyzed.eSlovo = pr.Dict.CreateNewSlovoEx(analyzed); } return analyzed; }
public Slovo Translate(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; Dictionary dict = new Dictionary(); ArrayList al = dict.GetStrict(analyzed.eSlovo); if(al.Count > 0) { analyzed.rSlovo = ((DictSlovo)al[0]).Rus; } else { analyzed.rSlovo = analyzed.eSlovo; } return analyzed; }
public Slovo Translate(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; Dictionary dict = new Dictionary(); ArrayList al = dict.GetStrict(analyzed.eSlovo); if(al.Count > 0) { analyzed.rSlovo = ((DictSlovo)al[0]).Rus; } else { analyzed.rSlovo = analyzed.eSlovo; } // if(analyzed.chastRechi == ChastRechi.Mestoimenie) analyzed.rSlovo = MestChange(analyzed,analyzed.rSlovo); return analyzed; }
Slovo PostAnalyzePadezh(Predlozhenie pr,int place) { Slovo s = pr[place]; int pl = place-1; if(pl>=0) { Slovo prev = (Slovo)pr[pl]; while(pl>0&&(prev.chastRechi == ChastRechi.Prilagatelnoe || prev.chastRechi == ChastRechi.ChislitelnoePoryadkovoe || prev.chastRechi == ChastRechi.Chislitelnoe)) { pl--; prev = (Slovo)pr[pl]; } if(prev.chastRechi == ChastRechi.Predlog) { // Slovo prev = (Slovo)pr[place-1]; if(prev.rSlovo == "к") s.ruSlovo.ruPadezh = RuPadezh.Datelniy; else if(prev.rSlovo == "по") s.ruSlovo.ruPadezh = RuPadezh.Datelniy; else if(prev.rSlovo == "без") s.ruSlovo.ruPadezh = RuPadezh.Roditelniy; else if(prev.rSlovo == "о") s.ruSlovo.ruPadezh = RuPadezh.Predlozhniy; /* else if(prev.rSlovo == "с") s.ruSlovo.ruPadezh = RuPadezh.Tvoritelniy; */ } } return s; }
public Slovo Analyze(Predlozhenie pr,int place) { Slovo analyzed = pr[place]; return analyzed; }
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; } }
public void PostAnalyze(Predlozhenie pr,int place,ref Slovo slovo) { PostAnalyzeRod(ref slovo); PostAnalyzePadezh(pr,place,ref slovo); }
public Slovo Translate(Predlozhenie a, int b)//для перевода русских глаголов на эльюнди { bool glag = true; c = new Slovo(); c = a[b]; if (a == null || a[b] == null) return c; if (c.rSlovo == "") return c; //Dictionary dict = a.Dict; //c.eSlovo = c.eSlovo.ToUpper(); - он вообще в словарь заглядывал?? /pas/ string ruInf = a[b].eSlovo; if(a[b].eSlovo.Substring(a[b].eSlovo.Length-2)=="ся") { ruInf = a[b].eSlovo.Substring(0,a[b].eSlovo.Length-2); c.zalog = Zalog.Vozvratniy; } //throw new Exception(ruInf); ArrayList ar = a.Dict.GetStrictRusEx(ruInf); c.rSlovo = a[b].eSlovo; c.eSlovo = ar.Count>0?((DictSlovo)ar[0]).El:""; if(c.naklonenie == Naklonenie.Infinitiv) { if(c.zalog == Zalog.Vozvratniy) c.eSlovo = c.eSlovo+"-A"; return c; } Regex reg = new Regex(@"(?<часть1>.{1,})(?<часть2>((я|а|и)сь)|(вши))(?<часть3>(сь)?)"); Match mreg = reg.Match(c.rSlovo); if (mreg.Success && (mreg.Groups["часть1"].Value + mreg.Groups["часть2"].Value + mreg.Groups["часть3"].Value == c.rSlovo)) glag = false; else { char s = c.rSlovo[c.rSlovo.Length - 1]; if (s == 'а' || /*s == 'я' ||*/ s == 'в' || s == 'и') glag = false; } if (c.eSlovo != "") { if (c.eSlovo[0] == 'R' || c.eSlovo[0] == 'T' || c.eSlovo[0] == 'Y' || c.eSlovo[0] == 'U' || c.eSlovo[0] == 'O') { c = HaractEl(c); if (!glag) c.eSlovo = GlagModule.ZamLit(c.eSlovo, 'O', 0); } } else { c.eSlovo = ruInf; c.eSlovo = a.Dict.CreateNewSlovoEx(c); /* //ересь //на входе c.rSlovo //....... //код по постановке русского глагола или деепричастия в инифинитив глагола без приставок //....... //на выходе в c.rSlovo должен быть инфинитив русского глагола c.eSlovo = dict.TranslateRus(a[b].rSlovo); if (c.eSlovo != "") { if (c.eSlovo[0] == 'R' || c.eSlovo[0] == 'T' || c.eSlovo[0] == 'Y' || c.eSlovo[0] == 'U' || c.eSlovo[0] == 'O') { c = HaractEl(c); if (!glag) c.eSlovo = GlagModule.ZamLit(c.eSlovo, 'O', 0); } } else { //переводим как любой перевод (стр.160-161) //требуется глобальная переменная (например int COUNT в головном модуле) int COUNT = 0; if (!glag) c.eSlovo = 'O' + "-N-" + (++COUNT).ToString(); else { switch (c.vremya) { case Vremya.Buduschee: c.eSlovo = 'U' + "-N-" + (++COUNT).ToString(); break; case Vremya.Nastoyaschee: c.eSlovo = 'T' + "-N-" + (++COUNT).ToString(); break; case Vremya.Proshedshee: c.eSlovo = 'Y' + "-N-" + (++COUNT).ToString(); break; default: c.eSlovo = 'R' + "-N-" + (++COUNT).ToString(); break; } } } */ } return c; }
public Slovo Analyze(Predlozhenie a, int b) { haract = Haract.глагол; c = new Slovo(); if (a == null || a[b] == null) return c; c = a[b]; if (c.eSlovo == "") return c; predl = new Predlozhenie(); predl = a; pozition_predl = b; c.eSlovo = c.eSlovo.ToUpper(); switch (c.eSlovo[0]) { case 'R'://[та] неопред.форма (инфинитив) c.naklonenie = Naklonenie.Infinitiv; Analize(); break; case 'T'://[ча] настоящее время изъяв. накл. c.naklonenie = Naklonenie.Izjavitelnoe; c.vremya = Vremya.Nastoyaschee; Analize(); break; case 'Y'://[ка] прошедшее время изъяв. накл. c.naklonenie = Naklonenie.Izjavitelnoe; c.vremya = Vremya.Proshedshee; Analize(); break; case 'U'://[ша] будущее время изъяв. накл. c.naklonenie = Naklonenie.Izjavitelnoe; c.vremya = Vremya.Buduschee; Analize(); break; case 'O'://[ма] деепричастие c.naklonenie = Naklonenie.Izjavitelnoe; haract = Haract.деепричастие; c.vremya = Vremya.Nastoyaschee; c.eSlovo = ZamLit(c.eSlovo, 'T', 0); Analize(); c.eSlovo = ZamLit(c.eSlovo, 'O', 0); break; } return c; }
public Slovo Translate(Predlozhenie a, int b) { c = new Slovo(); pozition_predl = b; predl = a; if (a == null || a[b] == null) return c; c = a[b]; if (c.eSlovo == "") return c; c.eSlovo = c.eSlovo.ToUpper(); char t = c.eSlovo[0]; if (t == 'R' || t == 'T' || t == 'Y' || t == 'U' || t == 'O') { lico = 3;//по умолчанию bool y = true; //переводим слово на русский и возвращаем GlagDict dict = new GlagDict(); logFormRus += "\nПеревод начальной формы: "; if (t == 'O') { haract = Haract.деепричастие; } if ((c.rSlovo = dict.TranslateEl(a[b].eSlovo)) != "") y = false;//поиск 1 if (c.rSlovo == "") c.rSlovo = dict.TranslateEl(ZamLit(a[b].eSlovo, 'R', 0));//поиск 2 if (c.rSlovo == "") c.rSlovo = dict.TranslateEl(OsnovaEl(a[b].eSlovo));//поиск 3 if (c.rSlovo == "") { logFormRus += "НЕТ В БАЗЕ ДАННЫХ"; c.rSlovo = c.eSlovo; return c; } logFormRus += "< " + c.rSlovo.ToUpper() + " >"; if (y) { c.rSlovo = RusForm(c.rSlovo); logFormRus += "\nПостановка формы: < " + c.rSlovo.ToUpper() + " >"; } } return c; }
public void PostAnalyzePadezh(Predlozhenie pr,int place,ref Slovo slovo) { if(pr[place-1]!=null && pr[place-1].chastRechi == ChastRechi.Predlog) { Slovo predlog = pr[place-1]; //Здесь будет анализ падежа на основе падежа эльюнди и русского предлога. } ShiftPadezh(ref slovo); }
public Predlozhenie MorfAnalyze(Predlozhenie pr) { Open(); Predlozhenie pred = pr; for(int j=0;j<pred.Count;j++) { Slovo s = (Slovo)pred[j]; string slovo = s.rSlovo; string flextype = ""; string grtype = ""; slovo = slovo.ToUpper(); bool cifra = false; try { int i = int.Parse(slovo); cifra = true; } catch { cifra = false; } if(!cifra) { for(int i=slovo.Length;i>0;i--) { string osnova = slovo.Substring(0,i); ArrayList ar = GetDict(osnova); bool br = false; if(ar.Count>0) { //System.Windows.Forms.MessageBox.Show(osnova); foreach(string flexid in ar) { // Console.WriteLine(osnova); string flex = GetFlex(flexid.Split(';')[0]); //System.Windows.Forms.MessageBox.Show(flexid.ToString()); foreach(string f in flex.Split('%')) { if(f!="") { if(osnova+f.Split('*')[0]==slovo) { // System.Windows.Forms.MessageBox.Show(osnova+flex.Split('%')[1].Split('*')[0],"Начальная форма: "); s.eSlovo = (osnova+flex.Split('%')[1].Split('*')[0]).ToLower(); // System.Windows.Forms.MessageBox.Show(f.Split('*')[1],"Тип флексии: "); flextype = f.Split('*')[1]; grtype = flexid.Split(';')[1]; br = true; break; } } if(br) break; } } } if(br) break; } AnalyzeGramTab(ref s,flextype,grtype); pr.SetSlovo(s,j); if(s.chastRechi == ChastRechi.Suschestvitelnoe) pr.SetSlovo(PostAnalyzePadezh(pr,j),j); } else { s.eSlovo = s.rSlovo; s.chastRechi = ChastRechi.Znak; pr.SetSlovo(s,j); } if(this.Tick != null) Tick(this,null); } Close(); return pr; }
protected void AnalyzeCharacteristicsFromNoun(Predlozhenie pr, int place, ref Slovo analyzed) { // поиск в предложении существительного //и копировaние его хaрaктеристик (родa, числa, пaдежa) Прилaгaтельное int i = place+4>pr.Count-1?pr.Count-1:place+4; int max = place-4>0?place-4:0; if ((analyzed.chastRechi == ChastRechi.Prilagatelnoe || analyzed.chastRechi == ChastRechi.Prichastie )&& pr.Count > 1) { while (i > max) { Slovo slovpoisk = pr[i]; if (slovpoisk.chastRechi == ChastRechi.Suschestvitelnoe) break; else i--; } if (i != max) { analyzed.ruSlovo.ruChislo = pr[i].ruSlovo.ruChislo; analyzed.ruSlovo.ruPadezh = pr[i].ruSlovo.ruPadezh; analyzed.ruSlovo.ruRod = pr[i].ruSlovo.ruRod; } else { analyzed.ruSlovo.ruChislo = RuChislo.Edinstvennoe; analyzed.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; analyzed.ruSlovo.ruRod = RuRod.Muzhskoj; } } i = 0; //aнaлиз Причaстия нa Эльюнди if (analyzed.chastRechi == ChastRechi.Prichastie) { analyzed.vremya = Vremya.Nastoyaschee; analyzed.zalog = Zalog.Dejstvitekniy; /* while (i < pr.Count) { Slovo slovpoisk = pr[i]; if (slovpoisk.chastRechi == ChastRechi.Glagol) break; else i++; } if (i != pr.Count) analyzed.vremya = pr[i].vremya; if (analyzed.eSlovo.IndexOf("RBA") != -1) analyzed.vremya = Vremya.NastoyascheeDlitelnoe; if (analyzed.eSlovo.IndexOf("TBA") != -1) analyzed.vremya = Vremya.Nastoyaschee; if (analyzed.eSlovo.IndexOf("YBA") != -1) analyzed.vremya = Vremya.Proshedshee; if (analyzed.eSlovo[1] == 'S' || analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'S') analyzed.vid = Vid.Zavershennost; if (analyzed.eSlovo[1] == 'S' && analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'S') analyzed.vid = Vid.NevozvratnayaZavershennost; if (analyzed.eSlovo.IndexOf("RBY") != -1) analyzed.vid = Vid.Mgnovennost; if (analyzed.eSlovo.IndexOf("SCY") != -1) analyzed.vid = Vid.NachaloDejstviya; if (analyzed.eSlovo.IndexOf("PVI") != -1) analyzed.vid = Vid.OgranichenieDlitelnosti; if (analyzed.eSlovo.IndexOf("PVS") != -1) analyzed.vid = Vid.NeopredelennayaDlitelnost; if (analyzed.eSlovo.IndexOf("RBA") != -1) analyzed.vid = Vid.PostoyannayaDlitelnost; if (analyzed.eSlovo.IndexOf("UCS") != -1) analyzed.vid = Vid.NezavershennostDejstviya; analyzed.zalog = Zalog.Dejstvitekniy; if (analyzed.eSlovo[1] == 'A' || analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'A' && analyzed.eSlovo[analyzed.eSlovo.Length - 1] == '-') analyzed.zalog = Zalog.Vozvratniy; if (analyzed.eSlovo.IndexOf("SVA") != -1) analyzed.zalog = Zalog.Vzaimniy; if (analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'F' && analyzed.eSlovo [analyzed.eSlovo.Length - 2] == '-') analyzed.zalog = Zalog.Stradatelniy; */ } //MessageBox.Show(pr[place].rSlovo); //это нaпишем в последнюю очередь. }
protected ArrayList SecondParse(ArrayList slova) { ArrayList ar = new ArrayList(); Predlozhenie pr = new Predlozhenie(); for(int i=0;i<slova.Count;i++) { Slovo current = (Slovo)slova[i]; if(current.chastRechi == ChastRechi.Znak) { if(current.rSlovo == "."||current.rSlovo == "?"||current.rSlovo == "!"||current.rSlovo == "..."||current.rSlovo == "\n") { pr.AddSlovo(current); if(i+1<slova.Count) { current = (Slovo)slova[i+1]; while(current.chastRechi == ChastRechi.Znak&&i+1<slova.Count) { pr.AddSlovo(current); i++; if(i+1<slova.Count) current = (Slovo)slova[i+1]; } //i--; } ar.Add(pr); pr = new Predlozhenie(); } else { pr.AddSlovo(current); } } else { pr.AddSlovo(current); } } ar.Add(pr); return ar; }
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); } //else i++; } 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.ruSlovo.ruChislo = res.ruSlovo.ruChislo; analyzed.ruSlovo.ruPadezh = res.ruSlovo.ruPadezh; analyzed.ruSlovo.ruRod = res.ruSlovo.ruRod; } else { analyzed.ruSlovo.ruChislo = RuChislo.Edinstvennoe; analyzed.ruSlovo.ruPadezh = RuPadezh.Imenitelniy; analyzed.ruSlovo.ruRod = RuRod.Muzhskoj; } } //i = 0; //aнaлиз Причaстия нa Эльюнди if (analyzed.chastRechi == ChastRechi.Prichastie) { analyzed.vremya = Vremya.Nastoyaschee; analyzed.zalog = Zalog.Dejstvitekniy; /* while (i < pr.Count) { Slovo slovpoisk = pr[i]; if (slovpoisk.chastRechi == ChastRechi.Glagol) break; else i++; } if (i != pr.Count) analyzed.vremya = pr[i].vremya; if (analyzed.eSlovo.IndexOf("RBA") != -1) analyzed.vremya = Vremya.NastoyascheeDlitelnoe; if (analyzed.eSlovo.IndexOf("TBA") != -1) analyzed.vremya = Vremya.Nastoyaschee; if (analyzed.eSlovo.IndexOf("YBA") != -1) analyzed.vremya = Vremya.Proshedshee; if (analyzed.eSlovo[1] == 'S' || analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'S') analyzed.vid = Vid.Zavershennost; if (analyzed.eSlovo[1] == 'S' && analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'S') analyzed.vid = Vid.NevozvratnayaZavershennost; if (analyzed.eSlovo.IndexOf("RBY") != -1) analyzed.vid = Vid.Mgnovennost; if (analyzed.eSlovo.IndexOf("SCY") != -1) analyzed.vid = Vid.NachaloDejstviya; if (analyzed.eSlovo.IndexOf("PVI") != -1) analyzed.vid = Vid.OgranichenieDlitelnosti; if (analyzed.eSlovo.IndexOf("PVS") != -1) analyzed.vid = Vid.NeopredelennayaDlitelnost; if (analyzed.eSlovo.IndexOf("RBA") != -1) analyzed.vid = Vid.PostoyannayaDlitelnost; if (analyzed.eSlovo.IndexOf("UCS") != -1) analyzed.vid = Vid.NezavershennostDejstviya; analyzed.zalog = Zalog.Dejstvitekniy; if (analyzed.eSlovo[1] == 'A' || analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'A' && analyzed.eSlovo[analyzed.eSlovo.Length - 1] == '-') analyzed.zalog = Zalog.Vozvratniy; if (analyzed.eSlovo.IndexOf("SVA") != -1) analyzed.zalog = Zalog.Vzaimniy; if (analyzed.eSlovo[analyzed.eSlovo.Length - 1] == 'F' && analyzed.eSlovo [analyzed.eSlovo.Length - 2] == '-') analyzed.zalog = Zalog.Stradatelniy; */ } //MessageBox.Show(pr[place].rSlovo); //это нaпишем в последнюю очередь. }