查看單個文章
舊 2006-09-03, 07:32 AM   #1 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 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樂園";
}
}
}

希望高手看看。。指點指點我。。給點建議啦。。代碼書寫也好,庫函數使用也好。。謝謝先
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次