Ejemplo n.º 1
0
        private void GetQuery(string Query, ITweet[] Tweet, QueryCategory A, ref bool[] N, Tags tag)
        {
            int k;
            int l;
            int y;

            y = 0;
            for (int j = 0; j < jumlahtweetygdidapat; j++)
            {
                string queryX = Query;
                string querySearch;
                bool   queryBool = false;
                k = 0;
                l = 0;
                int        X  = -1;
                List <int> q  = new List <int>();
                List <int> ql = new List <int>();
                if (queryX != null)
                {
                    string thequery = "";
                    while (k < queryX.Length)
                    {
                        bool qfound = false;
                        while (queryX[k] == ' ' && k < queryX.Length)
                        {
                            k++;
                        }
                        int x = k;
                        while (!qfound && k < queryX.Length)
                        {
                            if (queryX[k] == ',')
                            {
                                qfound = true;
                            }
                            k++;
                        }
                        if (qfound)
                        {
                            querySearch = queryX.Substring(x, k - x - 1);
                        }
                        else
                        {
                            querySearch = queryX.Substring(x, k - x);
                        }
                        if (tag.isKMP)
                        {
                            X = KMP.solve(Tweet[j].Text, querySearch);
                        }
                        else
                        {
                            X = Booyer.solve(Tweet[j].Text, querySearch);
                        }
                        thequery = querySearch;
                        q.Add(X);
                        ql.Add(querySearch.Length);
                        if (X != -1)
                        {
                            queryBool = true;
                        }
                        l++;
                    }
                    if (queryBool)
                    {
                        N[j] = true;
                        HasilTweet Ax = new HasilTweet();
                        foreach (int value in q)
                        {
                            Ax.StartMark.Add(value);
                        }
                        foreach (int value in ql)
                        {
                            Ax.QueryLength.Add(value);
                        }
                        Ax.TweetContent = Tweet[j];
                        A.Tweet.Add(Ax);
                        A.num++;
                        Ax.result = Ax.TweetContent.Text;
                        foreach (int pos in Ax.StartMark)
                        {
                            if (pos != -1)
                            {
                                int    i = Ax.StartMark.IndexOf(pos);
                                string n = Ax.result.Substring(pos, Ax.QueryLength.ElementAt(i));
                                Ax.result = Ax.result.Replace(n, "<strong>" + n + "</strong>");
                            }
                        }
                    }
                }
            }
        }