将百万行 URL 合并在 2 个文件中
本文关键字:合并 文件 URL 百万 | 更新日期: 2023-09-27 17:55:51
文件 A B 包含百万个网址。
1、逐个浏览文件A中的网址。
2、提取 subdomain.com(http://subdomain.com/path/file)
3、如果文件B存在 subdomain.com,则保存到文件C。
有什么最快的方法可以使用 c# 获取文件 C?
谢谢。
当我使用Readline时,它没有太大的不同。
// stat
DateTime start = DateTime.Now;
int totalcount = 0;
int n1;
if (!int.TryParse(num1.Text, out n1))
n1 = 0;
// memory
dZLinklist = new Dictionary<string, string>();
// read file
string fileName = openFileDialog1.FileName; // get file name
textBox1.Text = fileName;
StreamReader sr = new StreamReader(textBox1.Text);
string fullfile = File.ReadAllText(@textBox1.Text);
string[] sArray = fullfile.Split( ''n');
//IEnumerable<string> sArray = tool.GetSplit(fullfile, ''n');
//string sLine = "";
//while (sLine != null)
foreach ( string sLine in sArray)
{
totalcount++;
//sLine = sr.ReadLine();
if (sLine != null)
{
//string reg = "http[s]*://.*?/";
//Regex R = new Regex(reg, RegexOptions.Compiled);
//Match m = R.Match(sLine);
//if(m.Success)
int length = sLine.IndexOf(' ', n1); // default http://
if(length > 0)
{
//string urls = sLine.Substring(0, length);
dZLinklist[sLine.Substring(0,length)] = sLine;
}
}
}
TimeSpan time = DateTime.Now - start;
int count = dZLinklist.Count;
double sec = Math.Round(time.TotalSeconds,2);
label1.Text = "(" + totalcount + ")" + count.ToString() + " / " + sec + " = " + (Math.Round(count / sec,2)).ToString();
sr.Close();
我会使用Microsoft LogParser来处理大文件:MS LogParser。您是否仅限于以描述的方式实现它?