找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3266|回复: 1

[分享] 飞信聊天记录的导出

[复制链接]
发表于 2008-7-11 10:17 | 显示全部楼层 |阅读模式
飞信是中国移动推出的一款聊天工具,在PC客户端上,聊天记录是不容易导出的。经过研究发现,飞信PC客户端使用的数据库是SQLite,它的数据库文件一般存放在:C:\Documents and Settings\用户名\Application Data\Fetion\708087590\history.dat 中,可以使用程序将其导出。
使用C#导出记录的关键代码如下:
  string sqlE = "";
            if (dtpStartTime.Checked && dtpEndTime.Checked)
            {
                sqlE = " and MessageBody.Time>=$time1 and MessageBody.Time<=$time2";
            }
            else if (dtpStartTime.Checked && !dtpEndTime.Checked)
            {
                sqlE = " and MessageBody.Time>=$time1";

            }
            else if (!dtpStartTime.Checked && dtpEndTime.Checked)
            {
                sqlE = " and MessageBody.Time<=$time2";
            }
            else
            {
                sqlE = "";
            }

            try
            {
                connHis = new SQLiteConnection(string.Format(connString, DataBaseUrl, txtOwnFetionNumber.Text));

                SQLiteDataAdapter sda = new SQLiteDataAdapter();
                DataSet ds = new DataSet("Message");
                connHis.Open();
                string sql = "select MessageBody.SenderName,Message.ReceiverName,MessageBody.Body,MessageBody.Time " +
                    " from MessageBody,Message " +
                    " where MessageBody.ID=Message.MessageID and (" +
                    " Message.ReceiverUri like '%" + FriendFetionNum + "%'  or Message.ReceiverUri like '%" + OwnFetionNumber + "%'" +
                    " or Message.ReceiverUri like '%" + OwnTelephone + "%' or Message.ReceiverUri like '%" + FriendTelephone + "%')" +
                    " and (MessageBody.SenderUri like '%" + FriendFetionNum + "%' or MessageBody.SenderUri like '%" + OwnFetionNumber + "%'" +
                    " or MessageBody.SenderUri like '%" + OwnTelephone + "%' or MessageBody.SenderUri like '%" + FriendTelephone + "%')" +
                    " and (MessageBody.MessageType=1 or MessageBody.MessageType=4)" +
                    sqlE + " order by MessageBody.Time desc";
                sda.SelectCommand = new SQLiteCommand(sql, connHis);
                if (dtpStartTime.Checked && dtpEndTime.Checked)
                {
                    sda.SelectCommand.Parameters.AddWithValue("$time1", dtpStartTime.Value);
                    sda.SelectCommand.Parameters.AddWithValue("$time2", dtpEndTime.Value);
                }
                else if (dtpStartTime.Checked && !dtpEndTime.Checked)
                {
                    sda.SelectCommand.Parameters.AddWithValue("$time1", dtpStartTime.Value);

                }
                else if (!dtpStartTime.Checked && dtpEndTime.Checked)
                {
                    sda.SelectCommand.Parameters.AddWithValue("$time2", dtpEndTime.Value);
                }
                else
                {                    
                }
                sda.Fill(ds, "Msg");
                ds.Tables[0].Columns.Add("tTime");
                ds.Tables[0].Columns.Add("Remark");
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    ds.Tables[0].Rows["tTime"] = ds.Tables[0].Rows["Time"].ToString();
                    ds.Tables[0].Rows["Remark"] = "飞信";
                }
                ds.Tables[0].Columns.Remove("Time");
                ds.Tables[0].Columns["tTime"].ColumnName = "Time";
                string Xml = ds.GetXml();
                System.IO.File.WriteAllText(txtXMLPath.Text.Trim(), Xml, System.Text.Encoding.UTF8);
                sda.Dispose();
                connHis.Close();
                MessageBox.Show("聊天记录已经成功导出为xml文件,现在您可以将xml导入到网站", "操作成功", MessageBoxButtons.OK,
                    MessageBoxIcon.Information);

点击这里可以下载应用程序。

fetion.rar

458.25 KB, 下载次数: 1024

下载后运行目录中的FetionBackUp_1_0_0_2

发表于 2010-1-22 16:20 | 显示全部楼层
没看明白!!!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|耘垦论坛 ( 辽ICP备18002260号-2 )

GMT+8, 2024-10-6 19:27 , Processed in 0.045414 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表