通过.IndexOf查找指定的内容实例

  今天想学flash as3 网上找到硅谷动力的教程,看了一下还可以,准备下载,但是这个只能一个一个的下载,我日哦,这个也太麻烦了,马上抄家伙,打开VS,然后看了一下网页的源码,这些链接地址有点规律, 马上想到 通过查找链接,把链接下载下来,然后复制到迅雷下载, 

 

首先我通过WebClient类把网页的源码下载了下来

 ///这个去下载的函数
	private string down(string url)
        {
            string str = url;

            using (WebClient client = new WebClient())
            {
                client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
                Stream data = client.OpenRead(str);
                using (StreamReader reader = new StreamReader(data, Encoding.Default))
                {
                    string s = reader.ReadToEnd();
                    return s;
                }
            }
        }
     ///这里创建了一个线程函数
	private void Therd()
        {
            int i = 1;
            for (; i < 65; i++)
            {
                string str = "http://www.enet.com.cn/eschool/video/flashactionscrip3/";
                var s = this.down(str + i + ".shtml");
                File.AppendAllText("d:/url/url.txt", Doit(s).Replace("\">\r\n", ""), Encoding.Default);
                CompressAll(i);
                if (i % 4 == 0)
                {
                    Thread.Sleep(1);
                }
                else
                {
                    Thread.Sleep(1000);
                }
            }

        }


我对界面小小的美话了一下,做成了专门下载他们网站内容的小工具,加了一进度条

建立委托函数 更新界面

 

 private delegate void DelegateWriteResult(int i, bool result);
        // 与定义的委托签名相同的函数,操作主线程控件
        private void WriteResult(int i, bool result)
        {
            if (result)
            {
                progressBar1.Value = i;

                progressBar1.Refresh();
                float ii = Convert.ToSingle(i / (progressBar1.Maximum * 0.01));

                textBox1.Text = i.ToString();
                label1.Text = "已完成:" + ii.ToString("F2") + "%";
                if (i == progressBar1.Maximum)
                {
                    label1.Text = "已完成:" + 100 + "%";
                }
                label1.Refresh();
                this.Refresh();
            }
            else
            {
                therds.Abort();
                this.Refresh();
            }

        }

        // 启动线程
        // 线程执行函数
        private void CompressAll(int i)
        {
            // 判断是否需要Invoke,多线程时需要
            if (this.InvokeRequired)
            {
                // 通过委托调用写主线程控件的程序,传递参数放在object数组中
                this.Invoke(new DelegateWriteResult(WriteResult), new object[] { i, true });
            }
            else
            {
                // 如果不需要委托调用,则直接调用
                this.WriteResult(i, true);
            }
        }
        private void Therd()
        {
            int i = 1;
            for (; i < 65; i++)
            {
                string str = "http://www.enet.com.cn/eschool/video/flashactionscrip3/";
                var s = this.down(str + i + ".shtml");
                File.AppendAllText("d:/url/url.txt", Doit(s).Replace("\">\r\n", ""), Encoding.Default);
                CompressAll(i);
                if (i % 4 == 0)
                {
                    Thread.Sleep(1);
                }
                else
                {
                    Thread.Sleep(1000);
                }
            }

        }


下面这个执行按钮 :

 

private Thread therds = null;

        private void button1_Click(object sender, EventArgs e)
        {
            therds = new System.Threading.Thread(new System.Threading.ThreadStart(Therd));
            therds.Start();
            therds.DisableComObjectEagerCleanup();
            therds.Name = "down";
            while (!therds.IsAlive)
            {
                therds.Abort();
            }
           

private Thread therds = null;

        private void button1_Click(object sender, EventArgs e)         {             therds = new System.Threading.Thread(new System.Threading.ThreadStart(Therd));             therds.Start();             therds.DisableComObjectEagerCleanup();             therds.Name = "down";             while (!therds.IsAlive)             {                 therds.Abort();             }                 

}

 

  private string Doit(string inStr, string str = "http://images.enet.com.cn/eschool/flashactionscrip3")         {             int strStart = inStr.IndexOf(str);             return inStr.Substring(strStart, str.Length + 20);         }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在 JavaScript 中,indexOf() 是一种字符串方法,用于查找子字符串在字符串中的位置。因为 indexOf() 方法是 String 对象的方法,所以必须通过 String 类的特定实例调用它。\[1\]引用\[2\]提供了一些使用 indexOf() 方法的示例,包括从字符串的开头或指定位置开始查找子字符串,并返回其位置。\[2\]引用\[3\]是一个具体的示例,展示了如何使用 indexOf() 方法在一个字符串中查找子字符串。\[3\] 问题:indexOf方法查找类 回答: indexOf() 方法可以用于查找一个字符串中的子字符串,并返回其在字符串中的位置。它是 JavaScript 中的一种字符串方法,需要通过 String 对象的实例调用。你可以指定从字符串的开头或指定位置开始查找,并返回子字符串的位置。\[1\]\[2\] 例如,如果你有一个名为str的字符串,你可以使用 str.indexOf("class") 来查找字符串中第一次出现 "class" 的位置。\[2\] #### 引用[.reference_title] - *1* *3* [JavaScript indexOf() 方法](https://blog.csdn.net/wuxiaopengnihao1/article/details/126942083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [字符串查找indexOf()方法应用](https://blog.csdn.net/youzhiji/article/details/119812818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值