using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace SupperReplace { ? ? public partial class Form1 : Form ? ? { ? ? ? ? public Form1() ? ? ? ? { ? ? ? ? ? ? InitializeComponent(); ? ? ? ? ? ? openFileDialog1.AddExtension = true; ? ? ? ? ? ? openFileDialog1.DefaultExt = "txt"; ? ? ? ? ? ? openFileDialog1.Filter = @"*.txt|*.txt"; ? ? ? ? }
? ? ? ? private void btnSelectFile_Click(object sender, EventArgs e) ? ? ? ? { ? ? ? ? ? ? if (openFileDialog1.ShowDialog() == DialogResult.OK) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? txtBoxFile.Text = openFileDialog1.FileName; ? ? ? ? ? ? } ? ? ? ? }
? ? ? ? private void btnSearch_Click(object sender, EventArgs e) ? ? ? ? { ? ? ? ? ? ? string search = txtBoxSearch.Text.Trim(); ? ? ? ? ? ? if (!string.IsNullOrEmpty(search)) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? string fileName = txtBoxFile.Text.Trim(); ? ? ? ? ? ? ? ? using (TextReader tr = File.OpenText(fileName)) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? string content = tr.ReadToEnd(); ? ? ? ? ? ? ? ? ? ? int count = CountNumber(content, search); ? ? ? ? ? ? ? ? ? ? DisplaySearchCount(count); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? }
? ? ? ? void DisplaySearchCount(int count) ? ? ? ? { ? ? ? ? ? ? lblSearchResult.Text = "共查找到:\r\n" + count.ToString() + "\r\n个结果。"; ? ? ? ? }
? ? ? ? void DisplayReplaceCount(int count) ? ? ? ? { ? ? ? ? ? ? DisplaySearchCount(count); ? ? ? ? ? ? lblReplaceResult.Text = "共查找到:\r\n" + count.ToString() + "\r\n个结果。"; ? ? ? ? }
? ? ? ? private int CountNumber(string father, string son) ? ? ? ? { ? ? ? ? ? ? //判断是否有相同字符串 ? ? ? ? ? ? if (father.Contains(son)) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? //用一个字符串储存被替换后的整个字符串 ? ? ? ? ? ? ? ? string strReplaced = father.Replace(son, ""); ? ? ? ? ? ? ? ? //两个字符串的长度差值 / 被替换掉的字符串单位长度 ? ? ? ? ? ? ? ? return (father.Length - strReplaced.Length) / son.Length; ? ? ? ? ? ? } ? ? ? ? ? ? //没有返回0个 ? ? ? ? ? ? return 0; ? ? ? ? }
? ? ? ? private void btnReplace_Click(object sender, EventArgs e) ? ? ? ? { ? ? ? ? ? ? string search = txtBoxSearch.Text; ? ? ? ? ? ? string replace = txtBoxReplace.Text; ? ? ? ? ? ? if (!string.IsNullOrEmpty(search)) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? string fileName = txtBoxFile.Text.Trim(); ? ? ? ? ? ? ? ? string content, result; ? ? ? ? ? ? ? ? using (TextReader tr = File.OpenText(fileName)) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? content = tr.ReadToEnd(); ? ? ? ? ? ? ? ? ? ? result = content.Replace(search, replace);
? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? //写入文件 ? ? ? ? ? ? ? ? using (FileStream fs = File.Open(fileName, FileMode.Create, FileAccess.Write, FileShare.None)) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? Byte[] info = new UTF8Encoding(true).GetBytes(result); ? ? ? ? ? ? ? ? ? ? fs.Write(info, 0, info.Length); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? int count = CountNumber(content, search); ? ? ? ? ? ? ? ? DisplayReplaceCount(count); ? ? ? ? ? ? } ? ? ? ? } ? ? } } ?
|