源码下载

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 { get; set; }
        public string NickName { get; set; }
        public string QQ { get; set; }
        public int Count { get; set; }
    }
}

转载于:https://www.cnblogs.com/mad/archive/2009/05/20/1467312.html

原创:QQ群发言统计相关推荐

  1. qq群 发言统计for tc

    /*  * 本程序 使用 tc 2.01 编译通过  * 10751331  is  QQ group   No.  * 把群聊天记录 导出成一个liao.txt 文本文件  * 先登陆群社区然后使用 ...

  2. python 实现QQ群接龙统计未接龙成员名单

    在学校当班长有时候需要使用QQ群接龙统计,但这个该死的QQ群接龙没法自定义接龙格式而且设置填写人名单还挺麻烦,对我统计未接龙成员名单造成了挺大的困扰(毕竟不想麻烦同学在名字前加个学号什么的,就只让他们 ...

  3. python 写脚本 获取qq好友地理位置_Python获取统计自己的qq群成员信息的方法

    这篇文章主要介绍了Python获取统计自己的qq群成员信息的方法,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 首先说明一下需要使用的工具以及技术:python3 + ...

  4. python抓取qq群消息_Python获取统计自己的qq群成员信息的方法

    首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己的qq群成员信息,自己必须是群主或者管理员, ...

  5. 探讨原创内容之:提取qq群聊天记录作为网页的案例

    一直在找原创内容.其实qq群就是一个很好的原创内容. 我提取出来了,直接保存为网页.如下: http://www.dlnulib.com/jiemengshili.htm 解梦实例 附上步骤:  一. ...

  6. qq群30天发言人数

    一个亲友小群,群等级降到了2级,然后一个小伙伴不辞辛劳地跳出来跟大家唠嗑,想提升群等级. 仔细看了下群等级的规则 机智的我怀疑是群主没给群充值,其他人无法通过入群申请,所以群等级下降了. 证实下自己的 ...

  7. [原创]22行JavaScript代码实现QQ群成员提取器,绿色、环保、无病毒!

    原来想给QQ群内的成员发邮件,找了一个现成的软件,没想到居然有QQ盗号病毒,很不爽.就决定自己动手,丰衣足食. 首先,我想到如果能够直接从QQ群成员列表中把所有成员拷贝出来,岂不是很方便.不过QQ明显 ...

  8. QQ群—取消对某人的屏蔽

    今天,误会别人了,把人给屏蔽了,想取消可是没找到怎么噶? 就搜了搜,采取拿来主义,分享给大家........................................... ---------- ...

  9. 第一次QQ群视频教育有感

    标题:第一次QQ群视频教育有感 作者:丁又专, 时间:2014.08.16 教育的目的:启发学生心智,发现个人优势,激发探索欲望. 今天早上看到 中国大学MOOC<文献管理与信息分析>(h ...

最新文章

  1. Firefox 的User Agent 将移除 CPU 架构信息
  2. 可以使用的mysql和navigate
  3. java arraylist 构造_Java基础五:构造方法、ArrayList
  4. 比特币的锁定脚本与解锁脚本
  5. Oracle数据库----函数
  6. spring session实现集群中session共享
  7. 安卓模拟器运行python_利用python+Appium 之 如何在设备(模拟器)上自动安装并启动APP...
  8. 微软Build 2017首日主角AI 同时发布.NET Core 2.0 Preview 1
  9. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
  10. linux串口对调,Linux串口调试详解
  11. HALCON 20.11:标定助手使用注意事项
  12. SQL Sever 创建视图
  13. 2021服务器cpu性能天梯图,显卡天梯图2021年3月最新版 显卡性能排行天梯图2021
  14. 运算放大器权威指南(第3版) (op amps for everyone)_OP高质量,ED多版本,有钱的动物狂想曲就是能为所欲为...
  15. 简要分析“荒野乱斗”基本元素
  16. 重庆计算机专业在职研究生,重庆师范大学在职研究生计算机专业教学方式
  17. GitHub使用中的错误及解决办法
  18. 手机捕鱼服务器维护,手机捕鱼游戏服务器
  19. 属于python3版本的保留字-Python3的保留字
  20. 详解图像二值化 函数threshold

热门文章

  1. Python 数据结构视频教程五
  2. Linux内核开发工作方向
  3. 口语学习Day6:今天聊聊国内安全还是国外安全?
  4. mybaits四-3:获取保存数据的id
  5. VisualStudioCode插件下载
  6. 2017年前端工作小结,个人踩坑之旅,前端学习者的杂谈
  7. 通过反射创建动态代理对象(二)
  8. 技术评析:云计算与摩尔定律相悖?
  9. 读书笔记 effective c++ Item 49 理解new-handler的行为
  10. mongodb 查询 mysql_MongoDB 基本查询使用