예제 #1
0
 private void button3_Click(object sender, EventArgs e)
 {
     try {
         OdbcConnection connection = new OdbcConnection();
         connection.ConnectionString = "DSN=PostgreSQL35W;UID=masterwordcounter;PWD=masterwordcounter";
         connection.Open();
         string         q           = "SELECT id, word, root, type, irregular FROM words WHERE (root IS NULL) OR (root = 0)";
         OdbcCommand    getAllTexts = new OdbcCommand(q, connection);
         OdbcDataReader odr         = getAllTexts.ExecuteReader();
         lista_svih_rijeci_koje_su_root.Clear();
         while (odr.Read())
         {
             Rijec t = new Rijec();
             t.Tekst     = odr.GetString(1);
             t.Korijen   = odr.GetString(1);
             t.Tip       = odr.GetInt32(3);
             t.Irregular = odr.GetBoolean(4);
             t.Id        = odr.GetInt32(0);
             lista_svih_rijeci_koje_su_root.Add(t);
         }
         c_root.DataSource = null;
         c_root.DataSource = lista_svih_rijeci_koje_su_root;
         q = "SELECT id, type FROM word_types";
         odr.Close();
         OdbcCommand    getAllTypes = new OdbcCommand(q, connection);
         OdbcDataReader odr1        = getAllTypes.ExecuteReader();
         lista_svih_rijeci_koje_su_root.Clear();
         int i = 1;
         while (odr1.Read())
         {
             TipRijeci t = new TipRijeci();
             t.Id    = i;
             t.Naziv = odr1.GetValue(1).ToString();
             lista_tipova.Add(t);
             i++;
         }
         c_type.DataSource = null;
         c_type.DataSource = lista_tipova;
         odr1.Close();
         q = "SELECT DISTINCT word, COALESCE(root,0), type, irregular,id FROM words";
         OdbcCommand    getAllWords = new OdbcCommand(q, connection);
         OdbcDataReader odr2        = getAllWords.ExecuteReader();
         lista_svih_rijeci.Clear();
         while (odr2.Read())
         {
             Rijec t = new Rijec();
             t.Tekst     = odr2.GetString(0);
             t.Korijen   = odr2.GetString(1);
             t.Tip       = odr2.GetInt32(2);
             t.Irregular = odr2.GetBoolean(3);
             t.Id        = odr2.GetInt32(4);
             lista_svih_rijeci.Add(t);
         }
         odr2.Close();
         connection.Close();
         int  broj_poznatih = 0;
         bool dodaj         = true;
         filtrirana_lista_rijeci.Clear();
         foreach (Rijec r in lista_rijeci)
         {
             foreach (Rijec r1 in lista_svih_rijeci)
             {
                 if (r1.Tekst == r.Tekst)
                 {
                     broj_poznatih++;
                     dodaj = false;
                     break;
                 }
             }
             if (dodaj)
             {
                 filtrirana_lista_rijeci.Add(r);
             }
             dodaj = true;
         }
         l_words.Text  = lista_svih_rijeci_koje_su_root.Count.ToString();
         t_word.Text   = filtrirana_lista_rijeci[0].Tekst;
         l_InList.Text = "1/" + filtrirana_lista_rijeci.Count.ToString();
     }
     catch (Exception e3)
     {
         MessageBox.Show(e3.Message);
     }
 }
예제 #2
0
 private void button4_Click(object sender, EventArgs e)
 {
     try
     {
         Gramatika = true;
         OdbcConnection connection = new OdbcConnection();
         connection.ConnectionString = "DSN=PostgreSQL35W;UID=masterwordcounter;PWD=masterwordcounter";
         connection.Open();
         string         q           = "SELECT DISTINCT word, COALESCE(root,0), type, irregular,id FROM words ORDER BY word";
         OdbcCommand    getAllWords = new OdbcCommand(q, connection);
         OdbcDataReader odr2        = getAllWords.ExecuteReader();
         lista_rijeci_gramatika.Clear();
         while (odr2.Read())
         {
             Rijec t = new Rijec();
             t.Tekst     = odr2.GetString(0);
             t.Korijen   = odr2.GetString(1);
             t.Tip       = odr2.GetInt32(2);
             t.Irregular = odr2.GetBoolean(3);
             t.Id        = odr2.GetInt32(4);
             lista_rijeci_gramatika.Add(t);
         }
         odr2.Close();
         connection.Close();
     }
     catch (Exception er)
     {
         MessageBox.Show(er.Message);
     }
     lista_rijeci_poslije_gramatike.Clear();
     foreach (Rijec r in lista_rijeci)
     {
         foreach (Rijec r1 in lista_rijeci_gramatika)
         {
             if (r.Tekst == r1.Tekst)
             {
                 if (!r1.Korijen.Equals("0"))
                 {
                     foreach (Rijec r3 in lista_rijeci_gramatika)
                     {
                         if (r3.Id.ToString().Equals(r1.Korijen))
                         {
                             foreach (Rijec r4 in lista_rijeci)
                             {
                                 if (r4.Tekst == r3.Tekst)
                                 {
                                     r4.Ponavljanje += r.Ponavljanje;
                                     r.Irregular     = true;
                                     break;
                                 }
                             }
                             break;
                         }
                     }
                     break;
                 }
             }
         }
     }
     foreach (Rijec r in lista_rijeci)
     {
         if (r.Irregular == false)
         {
             lista_rijeci_poslije_gramatike.Add(r);
         }
     }
     dataGridView1.DataSource = lista_rijeci_poslije_gramatike;
     chart1.Series["Rijec"].Points.Clear();
     MessageBox.Show(Convert.ToString(dataGridView1.RowCount));
     dataGridView1.Sort(dataGridView1.Columns[2], ListSortDirection.Ascending);
     for (int i = 0; i < lista_rijeci_poslije_gramatike.Count; i++)
     {
         chart1.Series["Rijec"].Points.AddXY(lista_rijeci[i].Ponavljanje, i);
     }
     label1.Text = "Ukupno riječi: " + lista_rijeci_poslije_gramatike.Count;
     chart1.Series["Rijec"].Points.Clear();
     for (int i = 0; i < lista_rijeci_poslije_gramatike.Count; i++)
     {
         chart1.Series["Rijec"].Points.AddXY(i + 1, lista_rijeci_poslije_gramatike[i].Ponavljanje);
     }
     chart1.ChartAreas[0].AxisX.Maximum = 80;
     chart1.ChartAreas[0].AxisX.Minimum = 0;
     chart1.ChartAreas[0].AxisY.Maximum = Convert.ToDouble(dataGridView1.Rows[0].Cells[2].Value);
     chart1.ChartAreas[0].AxisY.Minimum = 0;
     label1.Text = "Ukupno riječi: " + lista_rijeci_poslije_gramatike.Count;
 }
예제 #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            lista_rijeci.Clear();
            string t = richTextBox1.Text;

            t = t.Replace('.', ' ');
            t = t.Replace(',', ' ');
            t = t.Replace('!', ' ');
            t = t.Replace('?', ' ');
            t = t.Replace('"', ' ');
            t = t.Replace('-', ' ');
            t = t.Replace('\n', ' ');
            t = t.Replace('„', ' ');
            t = t.Replace('”', ' ');
            t = t.Replace('»', ' ');
            t = t.Replace('«', ' ');
            t = t.Replace('–', ' ');
            t = t.ToLower();
            t = t.Trim();
            RegexOptions options = RegexOptions.None;
            Regex        regex   = new Regex(@"[ ]{2,}", options);

            t = regex.Replace(t, @" ");
            richTextBox1.Text = t;
            int j = 0;

            string[] rijec = t.Split(' ');
            progressBar1.Maximum = rijec.Length;
            while (j < rijec.Length)
            {
                int duz = lista_rijeci.Count;
                int i;
                if (j == 0)
                {
                    Rijec r1 = new Rijec();
                    r1.Tekst       = rijec[j];
                    r1.Korijen     = "";
                    r1.Ponavljanje = 1;
                    r1.Tip         = 0;
                    lista_rijeci.Add(r1);
                    j++;
                }
                for (i = 0; i < lista_rijeci.Count; i++)
                {
                    duz = lista_rijeci.Count;
                    if (lista_rijeci[i].Tekst.Equals(rijec[j]))
                    {
                        lista_rijeci[i].Ponavljanje++;
                        break;
                    }
                    else if (i == duz - 1)
                    {
                        Rijec r1 = new Rijec();
                        r1.Tekst       = rijec[j];
                        r1.Korijen     = "";
                        r1.Ponavljanje = 1;
                        r1.Tip         = 0;
                        lista_rijeci.Add(r1);
                        break;
                    }
                }
                j++;
                progressBar1.Value = j;
                label1.Text        = j + "/" + rijec.Length;
                label1.Refresh();
            }
            MessageBox.Show("Analizirano!");
        }