Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }