本文發佈於ACFUN 轉載請註明
(http://www.acfun.tv/v/ac291028/)
隨著龍年的到來,ACFUN也要開始新的一年了,這新的一年裡 總希望為AC娘做點什麼事情,想來想去,一個苦逼的程式員還是為AC寫點小工具,做成ACTOOL工具集好了。希望這個工具可以給大家帶來些便利,更多的大家想要的功能,讓大家一起完成這個東西吧~希望能喚醒一些潛在的AC職人~
下面的工具都是開源的,大家可以隨意傳播隨意更改,但請不要去掉ACFUN的LOGO
那今天晚上就先寫個“樓主是好人”和C#編程的基礎教程好了。
不知道大家有沒有經常遇到樓主放福利的情況,經常是樓主在上面放東西,樓下一堆“樓主是好人,好人一生平安” 然後留了一地郵箱。
這個情況下作為樓主怎麼有那麼多的時間來一個一個抓取郵箱啊,所以然最近也打算學一下Regex,就順便連帶做了一個樓主是好人的郵箱採集器。(我會跟你們說是因為每次我留下郵箱都沒有收到福利才寫的麼)
拿這篇
龍年吉祥!西瓜的萬張白絲黑絲各種絲福利圖包大放送!
http://www.acfun.tv/v/ac290658/
為例子好了
地址就是ac290658
填入捕獲,等待一會就可以抓取到全部的郵箱了
當然,為了方便一次性發送福利,所以分隔字元號可以設成成分號以便發送(;)
當然百度貼吧等其他正常網站也可以抓取的
其實只要運算式自己寫好了 什麼都能抓的,比如抓一些MP3檔案其他的什麼的
關於運算式的寫法,我建議使用RegexBuddy
這個工具可以檢測也可以圖形化的插入運算式非常方便。
比如希望把這個改造抓取評論中up主留下的115地址 可以把運算式改成 115.com/file/([\w-.]+)
這樣就抓取到了115的地址了,不過由於今晚時間關係,我沒寫過濾,可能會重複。一開始是想反正郵箱有內建過濾的就沒寫了 = =。
接下來就是教大家簡單寫點小東西,以此來擴充ACTOOL。因為是基礎的,所以推薦用很容易使用的C#
其實編程沒有大家想象的那麼難,不要羨慕技術宅了,他們只是比你們更懂得搜尋一下
作為編程入門推薦用C#,做點小工具簡單好用。
那麼就開始手把手教 0基礎的(渴望變成技術宅的)新手做一個小工具。
比如說最近曹老爺這個騷貨經常發的“圖種”,就是那種圖片右鍵另存新檔rar格式就有神奇的東西出現的那圖種,這個看起來似乎很牛B,但是實際上是很簡單就可以實現的。
究竟多簡單呢,百度一下好了
百度後發現,原來只需要用一個
copy /b A.JPG+B.RAR C.JPG
的CMD命令就可以實現了 沒錯,就是把要製作的檔案對號入座填寫到CMD裡面就行了
那麼就是這個原理了,軟體就是要讓複製的過程變得簡單,因此我們不想每次都打這個命令
所以我們就讓軟體幫我們打吧
1:首先裝好VS2010
2:開啟建立-項目-Visual C# 右邊選擇Windows 表單應用程式
3:確定後出現一個空白框
4:看到左邊有一堆控制項, label就是讓你寫文字 Button就是按鈕,textbox框就是輸入文字框,你們可以按照我做的原樣把控制項拖進去
然後點某個控制項,可以看到有Text這個屬性,就可以改文本名字了
因為是基礎的東西,所以就簡單講了,先雙擊我們拖出來的Button控制項
會自動跳轉到cs代碼檔案,這個時候就是讓你寫按下這個Button的時候會發生什麼事情
那我想讓他執行CMD上面那段代碼,怎麼辦?不會寫啊
那百度吧,新手無限百度就可以了 找到執行CMD命令的C#代碼了
public void RunCmd(string cmd) //隱式執行CMD
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.StandardInput.WriteLine(cmd);
proc.Close();
}
作為新手的話 看不懂也無所謂,只要能會用,等以後就能領悟這段代碼的意思了
這段代碼是一個“方法”,方法中不能定義另一個方法,所以我們把這段代碼貼在
private void button1_Click(object sender, EventArgs e) { }
外面
貼完後回到那個空空的
private void button1_Click(object sender, EventArgs e) { }
我們現在就是要往{ }裡面寫代碼,要怎麼寫呢,因為我們剛剛找到了那段執行CMD的代碼,所以直接就調用RunCmd這個方法就可以了
我們往空空的{}裡面寫上 RunCmd("notepad");
然後試試看按下F5啟動程式,點一下你的那個Button看看,是不是跳出一個記事本了?
沒錯,剛剛就是在cmd命令下 打下了 notepad 這個行命令,啟動了記事本,所以我們只需要把上面那個notepad換成 copy /b A.JPG+B.RAR C.JPG 就行了
但是A\B\C這些檔案都是未知的,所以要讓使用者自己選。 這個時候可以讓使用者自己填寫這些地址,然後我們把這個地址作為參數傳入進去就可以了。為了最大程度方便,我寫成了拖入式的方法。
至於拖入檔案擷取檔案路徑的這個我已經寫好了,既然是0基礎的就暫時講這些好了,其他的也差不多是這樣的。
我留個作業好了
1:參照批量截取AC評論,做一個百度貼吧 所有該貼評論都能截取到的功能,輸入百度貼子ID擷取該貼所有評論
2:做一個重複過濾(提示:利用split將截取的內容分組再百度個方法過濾即可。)
如果還是不懂的可以參見我的原始碼,多多百度 多多學習一下。希望ACFUN人才輩出 多多為AC新的一年裡重生做貢獻!
http://115.com/file/e7h0vvd2
#原始碼及程式.rar