using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Net; using System.Windows.Forms; using System.IO; namespace jokes { public partial class Form1 : Form { private int countdownTime,nowSet; private Random ran=new Random(); private StringBuilder jok1 = new StringBuilder("笑話1"); private StringBuilder jok2 = new StringBuilder("笑話2"); private StringBuilder jok3 = new StringBuilder("笑話3"); public Form1() { InitializeComponent(); } private void question(int set) { switch (set) { case 1: textBox1.Text = jok1.ToString(); nowSet = 1; break; case 2: textBox1.Text = jok2.ToString(); nowSet = 2; break; case 3: textBox1.Text = jok3.ToString(); nowSet = 3; break; } } private void button1_Click(object sender, EventArgs e) { question(1); } private void button2_Click(object sender, EventArgs e) { question(2); } private void button3_Click(object sender, EventArgs e) { question(3); } private void button4_Click(object sender, EventArgs e) { Close(); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked==true) { countdown.Enabled = true; } else { countdown.Enabled = false; label2.Text = ""; } } private void countdown_Tick(object sender, EventArgs e) { if (countdownTime > 0) { showLabel2(countdownTime); countdownTime--; } else { showLabel2(countdownTime); question((++nowSet)%3+1); countdownTime=10; } } private void showLabel2(int i) { label2.Text = "倒數計時:"+i+"秒"; } private void Form1_Load(object sender, EventArgs e) { countdownTime = 10; } private void time_Tick(object sender, EventArgs e) { label1.Text = "現在時間" + DateTime.Now.ToUniversalTime().ToString(); } private void button5_Click(object sender, EventArgs e) { string web_list=""; int Newest = getnew(ref web_list);//最新的 for (int i = Newest , t = 1; t <= 3; i=i-5) { bool check = getCheck(i,ref web_list); if (!check) continue; switch (t) { case 1: jok1=new StringBuilder("Joke1\r\n"+textin(i)); break; case 2: jok2 = new StringBuilder("Joke2\r\n" + textin(i)); break; case 3: jok3 = new StringBuilder("Joke3\r\n" + textin(i)); break; default: break; } t++; System.Threading.Thread.Sleep(2000); } MessageBox.Show("Download over!"); } private int getnew(ref string web_list) { WebRequest request = WebRequest.Create(@"http://k...content-available-to-author-only...m.com/joke/newjoke.php"); request.Method = "POST"; WebResponse myResponse = request.GetResponse(); StreamReader sr = new StreamReader(myResponse.GetResponseStream()); web_list = String.Copy(sr.ReadToEnd()); sr.Close(); myResponse.Close(); int first = web_list.IndexOf("article"); return Int32.Parse(web_list.Substring(first + 31, 6)); } private bool getCheck(int tg,ref string web_list) { int first = web_list.IndexOf(tg.ToString()); if (first == -1) return false; else return true; } private string textin(int tg) { WebRequest text_request = WebRequest.Create(@"http://k...content-available-to-author-only...m.com/joke/article.php?cid=general&id="+tg); text_request.Method = "GET"; WebResponse text_myResponse = text_request.GetResponse(); StreamReader text_sr = new StreamReader(text_myResponse.GetResponseStream(),System.Text.Encoding.GetEncoding("big5")); string text_result = text_sr.ReadToEnd(); string outStr; byte[] byt = System.Text.Encoding.GetEncoding("Big5").GetBytes(text_result); outStr = System.Text.Encoding.GetEncoding("Big5").GetString(byt); text_sr.Close(); text_myResponse.Close(); int first = outStr.IndexOf("art_content"); int last = outStr.LastIndexOf("art_content"); string final = outStr.Substring(first + 15, last - first - 20); return final; } } }