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); } }
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; }
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!"); }