|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-09-03, 07:32 AM | #1 (permalink) |
榮譽會員
|
軟體 - HTML TO TXT 小工具,小軟件及源代碼 (5.15修改版)
HTML TO TXT 小工具,小軟件及源代碼 (5.15修改版)
軟件功能: 1.批量刪除指定目錄下.html,.htm文件的中html標籤,並儲存為.txt的文件 2.批量刪除指定目錄下.txt文件中所包含的固定字元串. 3.合併指定目錄下的htm,html,txt文件成一個.txt文件. 前幾天下的小說是HTML格式的,覺得不太方便,所以做了小軟件把HTML批量轉換成TXT,並加入幾個簡單的功能,也當學習c#練手. 算法構思還不是很清晰,功能也比較簡易,測試不完全,難免會有BUG,發現BUG或其他問題的或建議,可以發郵件到lisiyun@163.com,或到簫心論壇給我提出來. 希望各位大哥,給點意見,我也知道界面不好看,功能太簡單,稍後會貼上源代碼,希望大家能指點指點,畢竟第一次編寫windows應用程式,很多不足,有經驗的朋友看了代碼指點幾句吧.謝謝先 ps:執行此軟件,需安裝Microsoft .NETFramework SDK v2.0執行庫 MD5: 6d21d097a9c996e06feb4023b813f919 作者: want 2006/05/11 抓圖: 下載網頁面: http://down.52happy.net:88/Software/Catalog181/746.html 5.15修改版由附件提供 5.15修改版刪除HTML標籤後排版更好看 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Text.RegularExpressions; namespace del_rubbish { public partial class Form1 : Form { private int count;//計數,計算操作文件數 private string temp = ""; public Form1() { InitializeComponent(); } public void DeleteHTML(string a)//刪html標籤函數,a為傳入位址變數 { StreamReader sr = new StreamReader(a);//從a位址讀入 Stream s = sr.BaseStream; StreamReader sr1=new StreamReader(s,Encoding.GetEncoding("gb2312"));//htm,html文件需要轉換中文編碼 string temp = sr1.ReadToEnd(); temp = Regex.Replace(temp, "<[^>]*?>", "");//刪html的正則表達式 StreamWriter sw = new StreamWriter(count + ".txt"); sw.WriteLine(temp); sr.Close(); s.Close(); sr1.Close(); sw.Close(); this.toolStripStatusLabel1.Text = "刪除HTML標記完成!已操作"+count+"個文件!"; count++; } public void ForeachDir(string a)//取得資料夾的文件名,刪html版本的函數,a 為傳入位址 { this.toolStripStatusLabel1.Text = "請輸入正確的路徑!"; DirectoryInfo di = new DirectoryInfo(a); foreach (FileInfo fi in di.GetFiles())//遍歷di目錄中文件fi { DeleteHTML(fi.FullName); } } public void ForeachDir(string a,bool b)//取得資料夾的文件名,刪字元串,合併版本,a為傳入位址,b為判斷 { this.toolStripStatusLabel1.Text = "請輸入正確的路徑!"; DirectoryInfo di = new DirectoryInfo(a); if (b == true)//通過 b 判斷執行刪字元串,還是執行合併 { foreach (FileInfo fi in di.GetFiles()) { DeleteString(fi.FullName, this.textBox2.Text); } } else foreach (FileInfo fi in di.GetFiles()) { combination(fi.FullName); } } public void DeleteString(string a,string b)//刪字元串函數 { StreamReader sr = new StreamReader(a); Stream s = sr.BaseStream; //StreamReader sr1 = new StreamReader(s, Encoding.GetEncoding("gb2312"));//沒有轉換編碼,txt文件的編碼已經轉換 StreamReader sr1 = new StreamReader(s); string temp = sr1.ReadToEnd(); temp = Regex.Replace(temp, b, ""); StreamWriter sw = new StreamWriter(count + ".txt"); sw.WriteLine(temp); sr.Close(); s.Close(); sr1.Close(); sw.Close(); this.toolStripStatusLabel1.Text = "刪除字元串完成!已操作" + count + "個文件!"; count++; } public void combination(string a)//合併函數 { StreamReader sr = new StreamReader(a); Stream s = sr.BaseStream; //StreamReader sr1 = new StreamReader(s, Encoding.GetEncoding("gb2312"));//也沒有採用編碼 StreamReader sr1 = new StreamReader(s);//這裡是從位址文件打開後,讀取 temp += sr1.ReadToEnd();//用全局變數,新增每個文件的內容 StreamWriter sw = new StreamWriter("result.txt"); sw.WriteLine(temp); sr.Close(); s.Close(); sr1.Close(); sw.Close(); this.toolStripStatusLabel1.Text = "合併操作完成!已操作" + count + "個文件!"; count++; } private void button1_Click(object sender, EventArgs e)//刪除html按鍵 { if (this.textBox1.Text != "")//判斷文本框是否為空 { count = 1;//重新計數 ForeachDir(this.textBox1.Text); } else this.toolStripStatusLabel1.Text = "請輸入需要修改文件的目錄!"; } private void button2_Click(object sender, EventArgs e)//刪除字元串按鍵 { if (this.textBox1.Text != "" && this.textBox2.Text != "") { count = 1; ForeachDir(this.textBox1.Text, true); } else this.toolStripStatusLabel1.Text = "請輸入需修改文件的目錄和需刪除的字元串!"; } private void button3_Click(object sender, EventArgs e)//合併按鍵 { if (this.textBox3.Text != "") { count = 1; ForeachDir(this.textBox3.Text, false); } else this.toolStripStatusLabel1.Text = "輸入需要合併文件所在的目錄"; } private void ToolStripMenuItem_Click(object sender, EventArgs e)//「關於」 { MessageBox.Show("\n\n 前幾天下的小說是HTML格式的,覺得不\n太方"+ "便,所以做了小軟件把HTML批量轉\n換成TXT,並加入幾個簡單的功能.\n\n "+ "算法構思還不是很清晰,功能也比較簡易,測\n試不完全,難免會有BUG,發現BUG"+ "或其他\n問題的或建議,可以發郵件到lisiyun@163.com,\n或到簫心論壇給我提出來."+ "\n\n\n 作者: want \t\t2006/05/11", "關於......"); } private void ToolStripMenuItem5_Click(object sender, EventArgs e)//退出 { Application.Exit(); } private void ToolStripMenuItem2_Click(object sender, EventArgs e)//功能介紹 { MessageBox.Show("1.批量刪除指定目錄下.html,.htm文件的中html標籤,並儲存為.txt的文件\n"+ "2.批量刪除指定目錄下.txt文件中所包含的固定字元串.\n"+ "3.合併指定目錄下的htm,html,txt文件成一個.txt文件.","功能介紹"); } private void ToolStripMenuItem1_Click(object sender, EventArgs e)//使用方法 { MessageBox.Show("1.把需要轉換的.htm,.html放到同一個目錄下,並最好改成有"+ "順序數位的名字,例如,1.htm,2.html\n2.把此目錄的複製到第一個文本框,點"+ "擊\"刪除HTML標籤\",會在此程式目錄下自動產生修改後.txt文件\n3.如果要實現功能2,"+ "第一個文本框輸入txt文件所在目錄,第二個文本框輸入想刪除的字元串,點擊\"刪\n"+ "除輸入字元\",會在此程式目錄下自動產生修改後.txt文件\n4.如果要實現功能3,"+ "只需在第三個文本框輸入文件所在的目錄,點擊\"合併文件\",會在此程式目錄下自\n動"+ "產生一個.txt文件,", "使用方法"); } private void urlToolStripMenuItem_Click(object sender, EventArgs e)//訪問網站 { this.process1.Start(); } private void Form1_Load(object sender, EventArgs e) { this.process1.StartInfo.FileName = "http://bbs.52happy.net/index.php"; this.toolStripStatusLabel1.Text = "歡迎訪問IT樂園"; } } } 希望高手看看。。指點指點我。。給點建議啦。。代碼書寫也好,庫函數使用也好。。謝謝先 |
__________________ |
|
送花文章: 3,
|