C#统计单词词频

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace 英语词频
{
    public partial class Form1 : Form
    {
        public Form1()
        {  InitializeComponent();
    }

        private void button1_Click(object sender, System.EventArgs e)
        {



            Stream myStream ;
            StreamReader myReader;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.InitialDirectory = "E:\\";
            openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            //openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
               try
                {
                    if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        string sLine; 
                        myReader = File.OpenText(openFileDialog1 .FileName);
                        while ((sLine = myReader.ReadLine()) != null)
                        {
                            richTextBox1.Text += sLine;
                        }
                        
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }
            
        }
       private void Form1_Load(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
             string W = richTextBox1.Text;
            //定义一个字符数组
            char[] c = { ' ', ',', '.', '?', '!', ':', ';', '\'', '\"' };
            //分隔字符串后产生的字符串数组
            string[] S = W.Split(c);
            //建立哈希表
            Hashtable ha = new Hashtable();
            for ( int i = 0; i < S.Length; i++)
            {
                //判断文本是否进入
                if (ha.ContainsKey(S[i]))
                {
                    ha[S[i]] = (int)ha[S[i]] + 1;
                }
                else
                {
                    ha.Add(S[i], 1);
                }
            }
            //遍历哈希表
            foreach (DictionaryEntry de in ha)
            {
                //输出
                Console.WriteLine(de.Key + ":" + de.Value);
                //追加文本
               richTextBox2.AppendText(de.Key + ":" + de.Value + "\n");
               


            }
            int Sum=0;
            for (int i = 0; i < S.Length; i++)
            {
               textBox1.Text = (i+1).ToString();

            }
  
            }


 

posted @ 2013-04-23 16:27  东嘉CEO  阅读(1552)  评论(0)    收藏  举报