我又来发表旧作了…没错还是旧作,不过这个比较新了,两个月之前写的
有人问为什么要做这个东西呢?又被你发现了,我是自己想用才动手来做的………..hum,事情的原因就是某傻逼有段时间比较冷淡,上Q总是只发几个哦或者是纯表情…我略略不高兴就做了这个东西,一晚上搞定,两个小时不到。也不是为了证明什么,也不是想干嘛,就是想把这些东西数字化一下,然后自己看看。
你也想分析下你的他/她跟你的对话是什么情况吗?!你也想来试炼一下,测试一下你们之间是什么情况吗!你也想试试这个东西会不会带来感情危机吗!(开玩笑的啦,其实只是闹着玩的。我建议大家除了可以拿身边的人分析一下,也可以拿些你感觉奇怪的人来分析下,看看他是不是特别爱发“哦/嗯”,看看他是不是很爱发纯表情~~当然如果有人因为我写这个6KB的东西而分手了的话…我不负任何责任= =慎用啊各位
以下先上使用方法:
首先你需要的是QQ聊天记录,对于这个,我这里推荐几种方法
1.你可以打开QQ的消息管理器,然后导出消息(保存成txt)..之前我没有加上选择日期功能,现在已经加上去了*( ̄▽ ̄)* ,所以选好时间段就可以使用
2.可以查看聊天记录,这样复制起来有点麻烦…适合短期内的分析,直接用鼠标选了复制就行。
然后怎么用呢,下面是截图
这里用我和老妈的记录做下示范….有人留意到斜杠,没错,那个就是你给别人加过的注释,你可以留意下QQ聊天记录里面对方的称号,如果你改了备注的话是会跟着变的,在“我”旁边的框里写上你自己的Q名~~~~然后~~把那一大段的聊天记录全部粘贴到很大的框里面~~~然后点击“开始试炼”,就行了
你可以看到只输入了一个称呼之后数据有些变化,反正这样分析出来的一部分结果不正确,你知道就行了
关于技术讨论~~这里貌似就没什么好说的了,分隔字符用的是spit,去掉空格回车那些东西用的是replace。非常简单的东西,至于循环这里说一下。因为要检测一条消息的判断方法不能是回车,只能是检测到下一个日期(每条记录之前都会有个日期)或者检测到结尾才能是一条消息的结束。而且我们必须检查这条记录的发出者是谁。所以我用的方法是用一些值来记录该消息的状态。本来是用bool值的,但是综合考虑还要判断发出者,所以整理下弄了个枚举。我不确认这样的做法是好的,欢迎大家给我建议。
//先是枚举 enum Flag { Me,You,No} //下面是循环 foreach (string s in QQlist) {if (f == Flag.Me) { Isay.Add(s); f = Flag.No; } else if (f == Flag.You) { Yousay.Add(s); f = Flag.No; } else if (ContainS(MyName,s)) {f = Flag.Me;} else if (ContainS(YourName, s)) {f = Flag.You;} } //这里介绍下日期的比较,用的是datetime类和dateTimePicker控件 DateTime date1 = new DateTime(Convert.ToInt32(time[0]), Convert.ToInt32(time[1]), Convert.ToInt32(time[2].Substring(0, 2))); //我发现addyears这些方法并不是很好的选择 //date1.AddYears(Convert.ToInt32(time[0])); //date1.AddMonths(Convert.ToInt32(time[1])); //date1.AddDays(Convert.ToInt32(time[2].Substring(0,2))); if (DateTime.Compare(date1, dateTimePicker1.Value) > 0 && DateTime.Compare(date1, dateTimePicker2.Value)<0) return true;
最后当然是下载啦
想玩不知道找谁来玩==……
你是?
哇哈哈哈哈