zoukankan      html  css  js  c++  java
  • 原创:QQ群发言统计

    源码下载

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Text.RegularExpressions;
    using System.IO;

    namespace QQGroupCount
    {
        
    public partial class QQGroupCounter : Form
        {
            
    public QQGroupCounter()
            {
                InitializeComponent();
            }

            
    private void btnBroswer_Click(object sender, EventArgs e)
            {
                openFileDialog1.ShowDialog();
            }
            
    private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
            {
                txtFilePath.Text 
    = openFileDialog1.FileName;
                btnCount.Focus();
            }

            
    private void btnCount_Click(object sender, EventArgs e)
            {
                StreamReader sr 
    = new StreamReader(txtFilePath.Text);
                CountingContent(sr.ReadToEnd());
                sr.Dispose();
            }

            
    void CountingContent(string content)
            {
                
    string pattern = @"\d{4}[\-|/]\d{1,2}[\-|/]\d{1,2} \d{1,2}:\d{1,2}:\d{1,2} (.[^\(\)\<\>]*)(\(\d+\)|\<.[^\<\>]*\>)";
                MatchCollection mc 
    = Regex.Matches(content, pattern, RegexOptions.Multiline);
                List
    <QQUser> list = new List<QQUser>();

                
    string qq, name;
                
    foreach (Match m in mc)
                {
                    qq 
    = m.Groups[2].Value.Replace('(''\0').Replace(')''\0').Replace('<''\0').Replace('>''\0');
                    name 
    = m.Groups[1].Value;

                    QQUser user 
    = list.Find(u => u.QQ == qq);
                    
    if(user==null)
                        user 
    = list.Find(u => u.NickName == name);
                    
    if (user == null)
                    {
                        user 
    = new QQUser();
                        user.QQ 
    = qq;
                        user.NickName 
    = name;
                        user.Count 
    = 1;
                        list.Add(user);
                    }
                    
    else
                    {
                        user.Count
    ++;
                        user.NickName 
    = name;
                    }
                }
                list
    =list.OrderByDescending(u=>u.Count).ToList();
                
    int i=0;
                
    foreach(QQUser user in list)
                {
                    i
    ++;
                    user.Rank 
    = i;
                }
                dataGridView1.DataSource 
    = list;
            }

        }

        
    public class QQUser 
        {
            
    public int Rank { getset; }
            
    public string NickName { getset; }
            
    public string QQ { getset; }
            
    public int Count { getset; }
        }
    }

  • 相关阅读:
    原创 C++应用程序在Windows下的编译、链接(四)动态链接
    IE浏览器 json异常
    Linux系统github使用
    Mysql in 排序
    转 php四种基础算法:冒泡,选择,插入和快速排序法
    转 mysql取今天,明天,工作日,周末,本周,下周,下月数据
    下载远程图片到本地
    转 PHP中SQL_CALC_FOUND_ROWS与FOUND_ROWS()和count()
    星级点评
    21个值得收藏的Javascript技巧
  • 原文地址:https://www.cnblogs.com/mad/p/1467312.html
Copyright © 2011-2022 走看看