Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,644

HOME > บทความจากสมาชิก > C# มา โหลด โน่น โหลดนี่กันเถอะ (โปรแกรมดาวน์โหลดด้วย C#)





 
Clound SSD Virtual Server

C# มา โหลด โน่น โหลดนี่กันเถอะ (โปรแกรมดาวน์โหลดด้วย C#)

C# มา โหลด โน่น โหลดนี่กันเถอะ ผมเองเป็นคนชอบโหลบ ทั้ง หนัง เพลง การ์ตูนต่างๆ ดังนั้น ผมจึงมักที่จะเขียนโค้ดสำหรับไว้โหลด โน่น โหลดนี่เสมอ โดยใช้หลักการของ System.Text.RegularExpressions

วันนี้จะมาอธิบายโค้ด ง่ายๆ สำหรับนักโหลด ครับ
ไฟล์ที่ต้องใช้

1.https://mega.nz/#!YF53lapT!fmjfm4v4taJ83hvJC6vBS1SdmM5o2LezKV3gqth2yiQ
2.http://regexhero.net/tester/
3. เว็บสำหรับที่ต้องการโหลด

ควรมีพื้นฐาน Regular Expressions ซักหน่อยก็ดีนะครับจะช่วยได้เยอะ ก็อ่านมันจาก regex hero นี่แหละครับ เอาพอถูๆไถๆไปก่อน
ซึ่งถ้าฝึก regex บ่อยๆจะช่วยได้มากกว่า string เยอะครับ
ยิ่งถ้าผนวกกับ ienumerable ได้ก็ยิ่งช่วยได้เยอะ

ตัวอย่างจะเป็น เว็บ
https://www.iconfinder.com/
สำหรับโหลดรูป นะครับ

เบื้องต้นผมจะลองค้นแบบปกติก่อน
https://www.iconfinder.com/search/?q=C#&price=free


เพื่อค้นหาคำว่า C# และ ค้นรูป free ด้วย นะครับ
1

หามุมว่างๆ คลิกขวาเลือก view page source เพื่อดูโค้ด html

2

โค้ดก็ประมาณนี้ครับ

http://view-source:https://www.iconfinder.com/search/?q=C#&price=free

3

ทีนี้ก็เปิด regex hero ขึ้นมา จากนั้นก็ก๊อบทั้งหมดของ html ไปใส่ครับ

4


ความมันส์ มันเริ่มจากตรงนี้ครับ
เพราะ เราจะต้อง หา Regular pattern เพื่อดึง ลิงค์ที่ต้องการออกมา

สามารถศึกษา Regular pattern ได้ใน
https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference


ผมจะดึงไฟล์ .png ออกมานะครับ
ผมลองใส่ (https://.*?\.png)

5

สรุป ว่า เราได้ลิงค์มาแล้วนะครับ(ง๊ายง่าย)
ถ้ายังไม่ได้ก็เล่น regex ไปเรื่อยๆ จนกว่าจะได้ตามชอบใจละครับ
แต่ผมก็มักคิดง่ายๆ ถ้าจะโหลด ไฟล์ png ก็แค่ ใส่(*.?\.png)

อธิบายตามความรู้หางอึ่งของผมนะครับ
() คือการสร้าง group ขึ้นมา เพราะเวลาเรียกไปใช้ เราจะเรียกไปเป็น callection ที่ชื่อว่า MatchCollection
แล้วมันก็จะเรียกเป็น group[]

*.? ก็คือ อักขระ อะไรก็ได้ จะเป็นตัวหนังสือ ตัวเลขสัญลักษณ์ ได้หมด

\.png . เป็นเงื่อนไขใน Regular pattern หมายถึงอะไรก็ได้ แต่ถ้าเราจะใช้มัน หรืออะไรที่เป็นเงื่อนไข หรือ อักขระเงื่อนไขใน Regular pattern แล้ว เราจะต้อง เพิ่ม \ ข้างหน้า เช่น เราจะใช้ () ถ้าเราจะพิมพ์แค่() Regular มันจะแบ่ง group ให้เราดังนั้เราต้องพิมพ์ว่า \(\) เพื่อที่จะหาค่า () นั่นเอง

ในกรณีที่อยากค้นทั้งไฟล์ .png และ .jpg ก็ต้องใช้แบบนี้ครับ
\.[pngj]{3,}

[pngj] คือดูค่าใน [] ซึ่งก็คือ pngj และ {} เป็นการบอกจำนวน ซึ่ง {3,} หมายถึง อย่างน้อย 3 จำนวน
เช่น png pgn npg jpg ....
{} ผมมีหลักการใช้ง่ายๆคือ
{n,} > จำนวน n ขึ้นไป
{n,m} > จำนวน n ถึง m

เช่น [pngje]{3,4} มันจะคลุมทั้ง .jpg(3 ตัว) และ .jpeg(4 ตัว)

เรื่องนี้ มั่วๆไปเดียวก็ชินไปเองครับ ผมก็งูๆปลาๆ ไปเหมือนกัน

พอเราเล่นกับ regexจนสาแก่ใจแล้ว เราก็ คลิกที่ .net เพื่อดูโค้ด
ผมลบ target string ออกไป เพื่อให้เห็นโค้ดชัดเจนขึ้นครับ

6

หลักๆที่เราได้คือ
Code (C#)
string strRegex = @"(https://.*?\.png)";
//คือ pattern หรือ รูปแบบ สำหรับ Regex
Regex myRegex = new Regex(strRegex, RegexOptions.None);
เป็นการเรียกใช้ Regex 
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
  if (myMatch.Success)
  {
    // Add your code here
  }
}



เป็น for loop สำหรับ ดึงข้อมูลออกมาใช้ครับ
จะเขียนโค้ด สั้นๆ แบบนี้ก็ได้
Code (C#)
foreach (Match myMatch in new Regex(@"(https://.*?\.png)", RegexOptions.None).Matches(strTargetString))
{
 
}


ในกรณีความจุน้อยๆแบบนี้ เราสามารถ WebClient ในการโหลดได้ครับ
Code (C#)
public static void LoadFByWebClient(string link, string file)
        {
            using (WebClient webClient = new WebClient())
            {
               		 try
                {
                    webClient.DownloadFileAsync(new Uri(link), file);
                    System.Threading.Thread.Sleep(100);
                }
                		catch { }

            }
        }


แต่ถ้าเยอะๆ ควรใช้ IDM จะเหมาะกว่า(เกินซัก 10 mb ขึ้นไป)
Code (C#)
public static void LoadByIDM(string link, string file)
        {
            string IDMpath = Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\DownloadManager", "ExePath", true).ToString();

            System.Diagnostics.Process.Start(IDMpath, "/a /n /d " + link + "  /f \"" + file + "\"");
            System.Threading.Thread.Sleep(500);
        }



เมื่อเราได้ for loop มาแล้ว ก็โหลดเลยครับ

Code (C#)
foreach (Match myMatch in new Regex(@"(https://.*?\.png)", RegexOptions.None).Matches(strTargetString))
{
   LoadFByWebClient(myMatch.Groups[1].Value,@“C:\_load\” + System.IO.Path.GetFileName(_myMatch.Groups[1].Value));
}
ยังไม่จบครับ เรายังต้องทำให้ง่ายโดยการแปลงจาก url ให้เป็น โค้ดhtml ซะก่อน
public static string getHTML(string url)
        {
            string html = "";
            try
            {
                System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url.Trim());
                System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
                System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream());
                html = sr.ReadToEnd();
                sr.Close();
                response.Close();
            }
            catch { }
            return html;
        }


ดังนั้นโค้ดมันก็จะประมาณนี้ครับ

Code (C#)
string html = TorServices.NetWorkTOR.getHTML("https://www.iconfinder.com/search/?q=C#&price=free");
//แปลงจาก url ให้เป็น html

            foreach (Match myMatch in new Regex(@"(https://.*?\.png)", RegexOptions.None).Matches(html))
            {
                LoadFByWebClient(myMatch.Groups[1].Value,@"C:\_load\" +System.IO.Path.GetFileName(myMatch.Groups[1].Value));
            }






แทนที่เราจะค้นแค่ C# อย่างเดียว เราก็ทำให้มันค้นได้หลายๆคำ โดยใช้ list<> และ ForEach
แบบนี้

Code (C#)
new List<string>() { "C#", "lab", "Chemistry", "test", "metal","lern","book","man","animal","food" }
            .ForEach(cri =>
            {
                string html = TorServices.NetWorkTOR.getHTML("https://www.iconfinder.com/search/?q=" +cri+ "&price=free");
                foreach (Match myMatch in new Regex(@"(https://.*?\.png)", RegexOptions.None).Matches(html))
                {
                    TorServices.NetWorkTOR.LoadFByWebClient(myMatch.Groups[1].Value,@"C:\_load\" +System.IO.Path.GetFileName(myMatch.Groups[1].Value));
                }
            });







   
Share
Bookmark.   

  By : TOR_CHEMISTRY
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2019-04-23
  Download : No files
Sponsored Links
ไม่ต้องแก้ register_globals = On ก็เรียกใช้ตัวแปรแบบเดิมๆได้
ไม่ต้องแก้ register_globals = On ก็เรียกใช้ตัวแปรแบบเดิมๆได้
ปกติแล้วเวลาทำการติดตั้ง php ค่า default ของ register_globals จะเป็น Off แต่บางครั้งเราก็มีความจำเป็นที่เราจะต้องการใช้งาน ในแบบที่ register_globals=On เช่น ไม่อยากไปแก้ code โปรแกรมเดิมที่เขียนไว้ตั้งนานแล้วบ้างล่ะ แต่จะทำยังไง ถ้าหากว่า server ที่เราจำเป็นต้องใช้งานเค้ากำหนด register_globals มาให้เป็น Off ล่ะจะทำยังไง
Rating : Update : 2018-05-16 13:07:47
แก้ปัญหา Facebook Like หายเมื่อเปลี่ยนจาก HTTP เป็น HTTPS
แก้ปัญหา Facebook Like หายเมื่อเปลี่ยนจาก HTTP เป็น HTTPS
ในช่วงนี้หลายๆ เว็บกำลังเปลี่ยน เว็บจาก HTTP เป็น HTTPS และถ้ามีการใช้ Plugin Facebook Like / Shared คงจะเจอปัยหา Line หายกัน
Rating : Update : 2018-09-18 15:14:43
ฐานข้อมูล MySql ชื่อประเทศ ไทย+อังกฤษ
ฐานข้อมูล MySql ชื่อประเทศ ไทย+อังกฤษ
ฐานข้อมูล MySql ชื่อประเทศ ไทย+อังกฤษ (แปะไว้เตือนตัวเอง เวลาลืมว่าเคยทำไว้) พร้อมการใช้กับ PHP
Rating : Update : 2018-03-23 20:57:43
C# DataGridView กับ Event  และ Method แบบ บ้านๆ
C# DataGridView กับ Event และ Method แบบ บ้านๆ
C# DataGridView กับ Event และ Method แบบ บ้านๆ
Rating : Update : 2019-07-18 14:47:30
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
เชื่อว่า Programmer ทุกคน คงเคยใช้คำสั่ง SQL กันมาบ้างแล้ว และคำสั่งพื้นฐานที่ทุกคนถนัดและมักจะใช้กันบ่อยก็คือ SELECT * แต่วันนี้เรามาดูกันว่า คำสั่งที่เรามักใช้งานกันบ่อยๆ นี้ อาจจะไม่ค่อยเหมาะที่จะใช้เท่าไรนัก แต่จะมีเหตุผลอะไรบ้าง เราไปดูกันเลยครับ
Rating : Update : 2019-03-18 13:57:30
(C#) ASP.NET QR Code Generator ในแบบเลือกตัวเลขด้วย Radio Button ผ่าน Zxing Library และรองรับ UTF-8
(C#) ASP.NET QR Code Generator ในแบบเลือกตัวเลขด้วย Radio Button ผ่าน Zxing Library และรองรับ UTF-8
บทความเรื่อง (C#) ASP.NET QR Code Generator ในแบบเลือกตัวเลขด้วย Radio Button (ซึ่งใน Code มีการบวกจำนวนแบบ for loop) ผ่าน Zxing Library และรองรับ UTF-8 ครับ
Rating : Update : 2019-08-26 11:32:01
C# อ่านค่า Text file มาเเสดงบน DataGridView
C# อ่านค่า Text file มาเเสดงบน DataGridView
อ่านค่า Textfile.txt มาเเสดงบน DataGridView เเล้วดึงข้อมูลมาแสดงบน Textbox พอเป็นแนวทางสำหรับ คนที่ต้องการนำไปประยุกใช้ครับ
Rating : Update : 2019-04-23 11:19:42
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่