private static Dhatus AddDhatus(int i, int j, List <string> temp) { Dhatus dhatus = new Dhatus(); while (j - i > 8) { dhatus.Tag += temp[--j]; } dhatus.Karma = temp[--j]; dhatus.Settva = temp[--j]; dhatus.Pada = temp[--j]; dhatus.Gana = temp[--j]; dhatus.Artha = temp[--j]; lab: dhatus.Aupadeshik = temp[--j]; dhatus.Dhatu = temp[--j]; dhatus.Number = temp[--j]; if (dhatus.Dhatu == "01.1166") { j += 4; dhatus.Artha = ""; goto lab; } return(dhatus); }
private static List <Dhatus> GetDhatus(string input, string attr) { string[] attrs = new string[] { "dhatu-number", "dhatu-text", "dhatu-aupadeshik", "dhatu-artha", "badge5 badge dhatu-gana", "badge5 badge dhatu-pada", "badge5 badge dhatu-settva", "badge5 badge dhatu-karma", "badge5 badge dhatu-tag", }; string pattern = @"<" + attr + ".*?</" + attr + ">"; //@"<(\w+)\s[^>]*" + attr + @"[^>]*>[\s\S]*\1>"; MatchCollection matchCollection = Regex.Matches(input, pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline); List <Dhatus> td = matchCollection.OfType <Match>().Select(a => { Dictionary <string, string> gpskt = GetStringG(a.Value, @"<" + "span" + ".*?</" + "span" + ">", attrs); Dhatus dhatus = new Dhatus() { Number = gpskt[attrs[0]], Dhatu = gpskt[attrs[1]], Aupadeshik = gpskt[attrs[2]], Artha = gpskt[attrs[3]], Gana = gpskt[attrs[4]], Pada = gpskt[attrs[5]], Settva = gpskt[attrs[6]], Karma = gpskt[attrs[7]], Tag = gpskt[attrs[8]], }; return(dhatus); }).ToList(); return(td); }
static List <Dhatus> R2() { string path = @"C:\Users\ksdma\OneDrive\Desktop\"; List <Dhatus> dhatus = new List <Dhatus>(); List <string> data = File.ReadAllLines(path + "subresult2.txt").ToList(); //int set = data.FindAll(a => a.Contains("सेट्")).Count; //int anit = data.FindAll(a => a.Contains("अनिट्")).Count; //int vet = data.FindAll(a => a.Contains("वेट्")).Count; //int chu = data.FindAll(a => a.Contains("चु०")).Count; //int bva = data.FindAll(a => a.Contains("भ्वा०")).Count; //int ru = data.FindAll(a => a.Contains("रु०")).Count; //int di = data.FindAll(a => a.Contains("दि०")).Count; //int aa = data.FindAll(a => a.Contains("अ०")).Count; //int sva = data.FindAll(a => a.Contains("स्वा०")).Count; //int krya = data.FindAll(a => a.Contains("क्र्या०")).Count; //int tu = data.FindAll(a => a.Contains("तु०")).Count; //int ju = data.FindAll(a => a.Contains("जु०")).Count; //int ta = data.FindAll(a => a.Contains("त०")).Count; //int u = data.FindAll(a => a.Contains("उ०")).Count; //int A = data.FindAll(a => a.Contains("आ०")).Count; //int pa = data.FindAll(a => a.Contains("प०")).Count; data.RemoveAll(a => string.IsNullOrWhiteSpace(a)); List <List <string> > temp = data.Select((a, b) => { var ok = a.Trim().Split('।').ToList(); if (ok.Count > 3) { if ((ok[2].Contains("सेट्") || ok[2].Contains("अनिट्") || ok[2].Contains("वेट्")) && ok[2].Contains("०")) { var fg = ok.Take(3).ToList(); fg.RemoveAt(1); return(fg); } else if ((ok[1].Contains("सेट्") || ok[1].Contains("अनिट्") || ok[1].Contains("वेट्")) && ok[1].Contains("०")) { if (ok[2].Contains("उ०") || ok[2].Contains("आ०") || ok[2].Contains("प०")) { var hj = ok.Take(3).ToList(); return(new List <string>() { hj[0], hj[1] + hj[2] }); } return(ok.Take(2).ToList()); } else { } } return(ok.Take(2).ToList()); }).ToList(); string[] oh = new string[] { " " }; string[] no = new string[] { "(", ")" }; var list = temp.Select((a, b) => { if (a.Count > 1) { Dhatus dhatus1 = new Dhatus(); string[] vs = null; if (a[0].Contains("(")) { vs = a[0].Split(no, StringSplitOptions.RemoveEmptyEntries); dhatus1.Dhatu = vs[0]; dhatus1.Aupadeshik = vs[1].Replace(")", ""); } else { dhatus1.Dhatu = a[0]; } vs = a.Find(x => (x.Contains("सेट्") || x.Contains("अनिट्") || x.Contains("वेट्")) && x.Contains("०"))?.Split(oh, StringSplitOptions.RemoveEmptyEntries); if (vs == null) { return(dhatus1); } while (Regex.IsMatch(vs[vs.Length - 1], "\\d.")) { var fghi = vs.ToList(); fghi.RemoveAt(vs.Length - 1); vs = fghi.ToArray(); } lab: if (vs.Length == 4) { if (vs[2] == "वेट्" || vs[2] == "(अनिट्)" || vs[2] == "सेट्" || vs[2] == "अनिट्" || vs[2] == "सेट्०") { vs = new string[] { vs[0], vs[1] + " / " + vs[2], vs[3] }; } else { vs = new string[] { vs[0], vs[1], vs[2] + " / " + vs[3] }; } } else if (vs.Length > 3 || vs[2] == "वेट्") { vs = new string[] { vs[0], vs[1] + " / " + vs[2], vs[5] }; goto lab; } string tempGana = vs[0].Replace("०", ""); dhatus1.Gana = tempGana.Contains("/") ? (dhatus1.Ganas[(int)(Ganashort)(Enum.Parse(typeof(Ganashort), tempGana.Split('/')[0], true))] + " / " + (dhatus1.Ganas[(int)(Ganashort)(Enum.Parse(typeof(Ganashort), tempGana.Split('/')[1], true))])) : (dhatus1.Ganas[(int)(Ganashort)(Enum.Parse(typeof(Ganashort), tempGana, true))]); dhatus1.Settva = vs[1].Replace("०", "").Replace("(", "").Replace(")", ""); string tempPada = vs[2].Replace("०", ""); dhatus1.Pada = tempPada.Contains("/") ? (dhatus1.Padas[(int)(Padashort)(Enum.Parse(typeof(Padashort), tempPada.Split('/')[0], true))] + " / " + (dhatus1.Padas[(int)(Padashort)(Enum.Parse(typeof(Padashort), tempPada.Split('/')[1], true))])) : (dhatus1.Padas[(int)(Padashort)(Enum.Parse(typeof(Padashort), tempPada, true))]); //dhatus1.Padas[(int)(Padashort)(Enum.Parse(typeof(Padashort), vs[2].Replace("०", "")))]; return(dhatus1); } return(null); }).ToList(); list.RemoveAll(a => a == null); File.WriteAllLines(path + "tempGana.txt", list.Select(a => a.Gana).Distinct()); File.WriteAllLines(path + "tempSettva.txt", list.Select(a => a.Settva).Distinct()); File.WriteAllLines(path + "tempPada.txt", list.Select(a => a.Pada).Distinct()); //int set1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Settva) && a.Settva.Contains("सेट्")).Count; //int anit1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Settva) && a.Settva.Contains("अनिट्")).Count; //int vet1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Settva) && a.Settva.Contains("वेट्")).Count; //int chu1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("चु०")).Count; //int bva1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("भ्वा०")).Count; //int ru1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("रु०")).Count; //int di1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("दि०")).Count; //int aa1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("अ०")).Count; //int sva1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("स्वा०")).Count; //int krya1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("क्र्या०")).Count; //int tu1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("तु०")).Count; //int ju1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("जु०")).Count; //int ta1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Gana) && a.Gana.Contains("त०")).Count; //int u1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Pada) && a.Pada.Contains("उ०")).Count; //int A1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Pada) && a.Pada.Contains("आ०")).Count; //int pa1 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Pada) && a.Pada.Contains("प०")).Count; //var u2 = data.FindAll(a => a.Contains("उ०")).Select((z, x) => x).ToList(); //var A2 = data.FindAll(a => a.Contains("आ०")).Select((z, x) => x).ToList(); //var pa2 = data.FindAll(a => a.Contains("प०")).Select((z, x) => x).ToList(); //var u3 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Pada) && a.Pada.Contains("उ०")).Select((z, x) => x).ToList(); //var A3 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Pada) && a.Pada.Contains("आ०")).Select((z, x) => x).ToList(); //var pa3 = list.FindAll(a => !string.IsNullOrWhiteSpace(a?.Pada) && a.Pada.Contains("प०")).Select((z, x) => x).ToList(); //var ms1 = u2.Except(u3).ToList(); //var ms2 = A2.Except(A3).ToList(); //var ms3 = pa2.Except(pa3).ToList(); return(list); }