|
|
|
Codeproject โค้ดดีๆสำหรับคนขยันที่จะใฝ่ศึกษา |
|
|
|
|
|
|
|
หลังจากที่ เขียนโค้ดในการโหลดโค้ดใน csharphelper ผมก็ลองเขียนโค้ดสำหรับโหลดโค้ดใน Codeproject
แต่ยังไงก็ยังติด login เว็บอยู่ดี
วันนี้ ผมเอาโค้ดที่ผมใช้โหลดโค้ดจาก Codeproject มาแปะ เผื่อมีท่านใด้อยากโหลด
ขั้นตอนประมาณนี้ครับ
1. จะต้องมี user ของ Codeproject ซะก่อน สามารถสมัครได้ครับ
2. ผมใช้ firefox และ ตั้งค่า การโหลด สำหรับไฟล์ พวก zip rar
ถ้าตั้งค่าแบบนี้ เราจะไม่ต้องมานั่งคลิกบันทึกเองครับ
3. โค้ด C# สำหรับโหลด
Code (C#)
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;
}
public static void LoadCodeProject(string cri, int min = 1, int max = 150)
{
for (int i = min; i <= max; i++)
{
string url_1 = "https://www.codeproject.com/search.aspx?q=" + cri + "&doctypeid=1%3b2%3b3%3b13%3b14&pgnum=" + i;
string html_1 = Program.getHTML(url_1);
foreach (System.Text.RegularExpressions.Match myMatch in
new System.Text.RegularExpressions.Regex(@"<span class=""title""><a href=""//(www.codeproject.com/Articles/.*?)"" id="".*?"" rel=""nofollow"">.*?</a></span>",
System.Text.RegularExpressions.RegexOptions.None).Matches(html_1))
{
string s = Program.getHTML("https://" + myMatch.Groups[1].Value);
foreach (System.Text.RegularExpressions.Match myMatch_1 in
new System.Text.RegularExpressions.Regex(@"<li><a href=""(/.*?\.[zipar]{3,})"">.*?</a>", System.Text.RegularExpressions.RegexOptions.None).Matches(s))
{
string url = "https://www.codeproject.com/script/Articles/Download.aspx?file=" + myMatch_1.Groups[1].Value + "&rp=https://www.codeproject.com/";
System.Diagnostics.Process.Start(@"C:\Program Files\Mozilla Firefox\firefox.exe", url);
System.Threading.Thread.Sleep(1000);
}
System.Threading.Thread.Sleep(500);
}
}
}
cri คือ คำค้นที่ต้องการค้น min คือหน้าแรกที่ต้องการค้น max คือหน้าสุดท้ายที่ต้องการค้น เพราะมันจะมีหลายหน้ามากครับ เลย อาจจะแบ่งโหลดเป็นช่วงๆไป
5.โค้ดสำหรับทดสอบ
ผมลองโหลดโค้ดที่เกี่ยวกับ listview ซัก 2 หน้าดูก่อน ครับ
Code (C#)
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form2());
LoadCodeProject("listview", 1, 2);
MessageBox.Show("Complete...");
}
Tag : .NET, Win (Windows App), C#
|
|
|
|
|
|
Date :
2018-12-27 16:22:15 |
By :
lamaka.tor |
View :
973 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมชื่นชมคุณนะ "รู้จักให้และรู้จักรับ"
ผมคิด/ผมอยากเปลี่ยนแปลง HMI (Human Matchineห Interface) ให้อยู่ในรูปของ .NET/etc ที่ผมสามารถควบคุม
--- ผมมั่นใจว่า วิศวกรคิดไปไม่ไกลกว่า x*n นอกเหนือจากนั้นมันอยู่นอกวิสัยอาชีพ
------ มันไม่ง่ายแต่ก็คงไม่เกินความพยายามและความอดทน ที่เราจะเชื่อมต่อกับ อาชีพ "วิศวะ"
ผมฝันเอาไว้แบบนี้
|
|
|
|
|
Date :
2018-12-27 17:54:29 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก #NO1 ถ้าพูดถึงระบบ SCADA ทุกฯคนก็จะเข้าใจ
ความปราถนาของผมก็คือ เชื่อมต่อมันให้ได้/ควบคุมมันให้ได้/etc.. ไม่รู้จะใช้คำว่าอะไร?แทนความปราถนาของผม
เสียดาย...
...
...
...
สมองของผมมีน้อยเกินไป
...
...
...
|
|
|
|
|
Date :
2018-12-27 18:01:54 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะบอกว่า firefox มันก็ดีอยู่หรอก แต่ต้องมานั่ง ปิดหน้าต่างที่มันขึ้นมานี่ก้เหนื่อยเหมือนกัน
เมื่อคืนนั่งโหลด ขำ ๆ ได้ประมาณ 3 G คลิกปิดจนเมื่อยมือ
เลยหันมาใช้ Chrome แทน
แล้วก็เพิ่มโค้ดสำหรับ ลบ ไฟล์ที่ซ้ำกันด้วย
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace codeproject_Load
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form2());
// LoadCodeProject("datatable", 1, 40);
for (int i = 1; i < 10; i++)
CheckFileDup(@"D:\CodeProject", "(" + i + ")");
MessageBox.Show("Complete...");
}
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;
}
public static void CheckFileDup(string path, string cri)
{
System.IO.Directory.GetFiles(path, "*" + cri + "*", System.IO.SearchOption.AllDirectories).ToList<string>()
.ForEach(f =>
{
string _f = f.Replace(cri, "");
if (System.IO.File.Exists(_f) && new System.IO.FileInfo(f).Length == new System.IO.FileInfo(_f).Length)
System.IO.File.Delete(f);
});
}
public static void LoadCodeProject(string cri, int min = 1, int max = 150)
{
for (int i = min; i <= max; i++)
{
string url_1 = "https://www.codeproject.com/search.aspx?q=" + cri + "&doctypeid=1%3b2%3b3%3b13%3b14&pgnum=" + i;
string html_1 = Program.getHTML(url_1);
foreach (System.Text.RegularExpressions.Match myMatch in
new System.Text.RegularExpressions.Regex(@"<span class=""title""><a href=""//(www.codeproject.com/Articles/.*?)"" id="".*?"" rel=""nofollow"">.*?</a></span>",
System.Text.RegularExpressions.RegexOptions.None).Matches(html_1))
{
string s = Program.getHTML("https://" + myMatch.Groups[1].Value);
foreach (System.Text.RegularExpressions.Match myMatch_1 in
new System.Text.RegularExpressions.Regex(@"<li><a href=""(/.*?\.[zipar]{3,})"">.*?</a>", System.Text.RegularExpressions.RegexOptions.None).Matches(s))
{
string url = "https://www.codeproject.com/script/Articles/Download.aspx?file=" + myMatch_1.Groups[1].Value + "&rp=https://www.codeproject.com/";
System.Diagnostics.Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe", url);
System.Threading.Thread.Sleep(100);
}
System.Threading.Thread.Sleep(1000);
}
}
}
}
}
ดีกว่าเดิมเยอะครับ
แต่มันก็ยังไม่ดีพอ เพราะ ว่า พอ รัน foreach เพื่อ รัน chrome.exe มันก็ทำอะไรไม่ค่อยสะดวก
จึงอยากสอบถามครับ มีโค้ดที่รัน System.Diagnostics.Process.Start แบบ เงียบๆ ไม๊ครับ
|
|
|
|
|
Date :
2018-12-28 11:08:58 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเอา threading เข้ามาช่วยจะทำให้ทำงานได้เยอะขึ้นครับ
Code (C#)
private void Form1_Load(object sender, EventArgs e)
{
List<string> lst = new List<string>() { "textbox",
"combobox", "button", "label", "datagrid",
"datatable", "dataset", "database", "compile" ,
"thread","tool","popup","task","delegate","list","ienumerable"};
lst.ForEach(s =>{ new System.Threading.Thread(LoadCodeProject).Start(new object[]{s});});
}
void LoadCodeProject(object obj)
{
string cri = (string)((object[])obj)[0];
// MessageBox.Show(cri);
int i = 1;
System.Text.RegularExpressions.MatchCollection _Matches = null;
do
{
string url_1 = "https://www.codeproject.com/search.aspx?q=" + cri + "&doctypeid=1%3b2%3b3%3b13%3b14&pgnum=" + i;
string html_1 = Program.getHTML(url_1);
_Matches = new System.Text.RegularExpressions.Regex(@"<span class=""title""><a href=""//(www.codeproject.com/Articles/.*?)"" id="".*?"" rel=""nofollow"">.*?</a></span>", System.Text.RegularExpressions.RegexOptions.None).Matches(html_1);
foreach (System.Text.RegularExpressions.Match myMatch in _Matches)
{
string s = Program.getHTML("https://" + myMatch.Groups[1].Value);
foreach (System.Text.RegularExpressions.Match myMatch_1 in
new System.Text.RegularExpressions.Regex(@"<li><a href=""(/.*?\.[zipar]{3,})"">.*?</a>", System.Text.RegularExpressions.RegexOptions.None).Matches(s))
{
string url = "https://www.codeproject.com/script/Articles/Download.aspx?file=" + myMatch_1.Groups[1].Value + "&rp=https://www.codeproject.com/";
System.Diagnostics.Process.Start(@"C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe", url);
System.Threading.Thread.Sleep(100);
}
System.Threading.Thread.Sleep(1000);
}
i++;
} while (_Matches.Count > 0);
}
|
|
|
|
|
Date :
2019-01-03 09:42:17 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|