У меня проблема.Я хочу разделить текст в файле журнала, который имеет 503 МБ.Формат внутри файла:
98.234.170.104 - - [05/Oct/2015:06:37:26 +0300] "GET /_/pk/ID_0000012978.ism/QualityLevels(1415496)/Fragments(video=61330800000) HTTP/1.1" 200 353301 "-" "Firefox/1.5" "-" rt=0.000 ut="-" cs=HIT
104.34.124.254 - - [05/Oct/2015:06:37:26 +0300] "GET /T/VZ/ID_0000013023.ism/QualityLevels(95999)/Fragments(audio=79666404082) HTTP/1.1" 200 40595 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" rt=0.000 ut="-" cs=HIT
Есть тысячи строк, подобных этой рядом.Первая строка разделенного состояния выглядит следующим образом:
User ip adress: 99.91.220.138
Event time: [05/Oct/2015:06:37:26 +0300]
Request method : GET
contentaccount:/R/0A/ID_0000013091.ism/QualityLevels(1469889)/Fragments(video=14795200000)
content type: ID_0000013091
content bitrate : QualityLevels(1469889) indicated by bold. Bitrate should be calculated like that 1400000, 800000, 400000,300000
content type: Fragments(video=14795200000) indicated by bold (video or audio could)
HTTP Status: 200
Total sent Bytes: 658377
User Agent: Firefox/1.5
Cache Status: cs={STATUS} : HIT (Cache kullanılmış), MISS(cache kullanılmamış)
Что я хочу сделать, это выбрать файл с помощью одной кнопки, затем проанализировать этот файл и подсчет данных.
Например:
How many unique ip watched ? (Sample: 548)
How many unique content watched ? (Sample: 3242)
How much data has been sent ? (Sample: 500 GB)
Who is the watching most ? (Sample: 99.91.220.138)
What is the watching content most ? (Sample: ID_0000013091)
What is the watching bitrate oran (video or same audio). (Sample: 1400000 = %80 , 800000 = %10 , 400000 = %5 , 300000 = %5)
What is the watching browsers most ?. (Sample: IE = %20 , Chrome=%60 , Firefox = %20)
HTTP status oran (Sample: 2xx=%80, 403=%10, 404=%5, 5xx=%3, 3xx=%2)
Что я делал до сих пор?Я начинаю свой путь с программирования, поэтому я ничего не мог сделать.По крайней мере, пытаясь использовать кнопку и выбрать файл и прочитать, но это не работает.Мой компьютер остановился.Я думаю, что размер файла слишком велик.
Это код, который я использовал до сих пор:
OpenFileDialog opn = new OpenFileDialog();
string line = "";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (opn.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(opn.FileName);
while (line!=null)
{
line = sr.ReadLine();
if (line !=null)
{
listBox1.Items.Add(line);
}
}
sr.Close();
}
}
private void Form1_Load(object sender, EventArgs e)
{
opn.Filter = "Text Files (.log)|*.log";
}
}
Я был бы благодарен за помощь - это важно для меня.