Example #1
0
        public void ReadFromFile_thread()
        {
            //读取数据
            // inputFileStream = new FileStream(_path, FileMode.Open);
            byte[]       bs = File.ReadAllBytes(Datas.PublicOpinionAnaPath);
            MemoryStream ms = new MemoryStream(bs);

            //StreamReader sr = new StreamReader();

            ms.Read(bs, 0, bs.Length);
            LinkedList <SinaJSON> list = new LinkedList <SinaJSON>();
            SinaJSON item = new SinaJSON();

            binFormatter.Binder = new 微博舆论.BlogReader.UBinder();
            string[] sp = Datas.ads_word.Split(',');
            ms.Position = 0;
            // while (inputFileStream.Position < inputFileStream.Length)
            while (ms.Position < ms.Length)
            {
                // item = (SinaJSON)binFormatter.Deserialize(inputFileStream);
                item = (SinaJSON)binFormatter.Deserialize(ms);
                Datas.temp_data.Add(item);
                Datas.auto_read.Set();
            }
            Datas.auto_read.Set();
            //inputFileStream.Close();
            ms.Close();
        }
Example #2
0
 public BlogReader(string path)
 {
     binFormatter   = new BinaryFormatter();
     sinaJSON       = new SinaJSON();
     _path          = path;
     _content       = "";
     requestCounter = 0;
 }
Example #3
0
 public BlogReader()
 {
     binFormatter   = new BinaryFormatter();
     sinaJSON       = new SinaJSON();
     _path          = "temp4.dat";
     _content       = "";
     requestCounter = 0;
 }
Example #4
0
        /// <summary>
        /// 从文件读取数据
        /// </summary>
        /// <returns>List<SinaJSON></returns>
        public List <SinaJSON> ReadFromFile()
        {
            //读取数据
            inputFileStream = new FileStream(_path, FileMode.Open);
            List <SinaJSON> list = new List <SinaJSON>();
            SinaJSON        item = new SinaJSON();

            binFormatter.Binder = new UBinder();

            while (inputFileStream.Position < inputFileStream.Length)
            {
                Datas.Value = (int)(Convert.ToDouble(inputFileStream.Position) / inputFileStream.Length * 100);
                item        = (SinaJSON)binFormatter.Deserialize(inputFileStream);
                list.Add(item);
            }
            Datas.Value = (int)(inputFileStream.Position / inputFileStream.Length) * 100;
            inputFileStream.Close();
            return(list);
        }
Example #5
0
        private string _path; //文件保存位置

        #endregion Fields

        #region Constructors

        public BlogReader()
        {
            binFormatter = new BinaryFormatter();
            sinaJSON = new SinaJSON();
            _path = "temp4.dat";
            _content = "";
            requestCounter = 0;
        }
Example #6
0
        public void ReadFromFile_thread()
        {
            //读取数据
            // inputFileStream = new FileStream(_path, FileMode.Open);
            byte[] bs = File.ReadAllBytes(Datas.PublicOpinionAnaPath);
            MemoryStream ms = new MemoryStream(bs);
            //StreamReader sr = new StreamReader();

            ms.Read(bs, 0, bs.Length);
            LinkedList<SinaJSON> list = new LinkedList<SinaJSON>();
            SinaJSON item = new SinaJSON();
            binFormatter.Binder = new 微博舆论.BlogReader.UBinder();
            string[] sp = Datas.ads_word.Split(',');
            ms.Position = 0;
            // while (inputFileStream.Position < inputFileStream.Length)
            while (ms.Position < ms.Length)
            {
                // item = (SinaJSON)binFormatter.Deserialize(inputFileStream);
                item = (SinaJSON)binFormatter.Deserialize(ms);
                Datas.temp_data.Add(item);
                Datas.auto_read.Set();
            }
            Datas.auto_read.Set();
            //inputFileStream.Close();
            ms.Close();
        }
Example #7
0
        /// <summary>
        /// 从文件读取数据
        /// </summary>
        /// <returns>List<SinaJSON></returns>
        public List<SinaJSON> ReadFromFile()
        {
            //读取数据
            inputFileStream = new FileStream(_path, FileMode.Open);
            List<SinaJSON> list = new List<SinaJSON>();
            SinaJSON item = new SinaJSON();
            binFormatter.Binder = new UBinder();

            while (inputFileStream.Position < inputFileStream.Length)
            {
                Datas.Value = (int)(Convert.ToDouble(inputFileStream.Position) / inputFileStream.Length * 100);
                item = (SinaJSON)binFormatter.Deserialize(inputFileStream);
                list.Add(item);
            }
            Datas.Value = (int)(inputFileStream.Position / inputFileStream.Length) * 100;
            inputFileStream.Close();
            return list;
        }
Example #8
0
 public BlogReader(string path)
 {
     binFormatter = new BinaryFormatter();
     sinaJSON = new SinaJSON();
     _path = path;
     _content = "";
     requestCounter = 0;
 }
Example #9
0
        /// <summary>
        /// 将json数据转换存入List<SinaJson>中
        /// </summary>
        /// <param name="Sj">ref List<SinaJSON></param>
        /// <param name="json_str">要转换的字符串</param>
        public void  ConvertStr(string json_str)
        {
            int count = Datas.sinaJSONList.Count - 1;   //当前长度
            //int countSame=0;                            //重复个数
            List <SinaJSON> tempSj = new List <SinaJSON>();

            JObject  javascript = (JObject)JsonConvert.DeserializeObject(json_str);
            JArray   ja         = (JArray)javascript["statuses"];
            SinaJSON _Sj;

            for (int i = 0; i < ja.Count; i++)
            {
                _Sj = new SinaJSON();
                JObject obj = (JObject)ja[i];
                _Sj.Created_at            = SinaJSON.GMT2Local(obj["created_at"].ToString());
                _Sj.Id                    = Convert.ToInt64(obj["id"].ToString());
                _Sj.Mid                   = obj["mid"].ToString();
                _Sj.Idstr                 = obj["idstr"].ToString();
                _Sj.Text                  = obj["text"].ToString();
                _Sj.Source                = obj["source"].ToString();
                _Sj.Favorite              = Convert.ToBoolean(obj["favorited"]);
                _Sj.Trunctated            = Convert.ToBoolean(obj["truncated"]);
                _Sj.In_reply_to_status_id = obj["in_reply_to_status_id"].ToString();
                _Sj.In_reply_to_user_id   = obj["in_reply_to_status_id"].ToString();
                JArray pic = (JArray)obj["pic_urls"];
                for (int t = 0; t < pic.Count; t++)
                {
                    JObject pi = (JObject)pic[t];
                    _Sj.Pic_urls.Add(pi["thumbnail_pic"].ToString());
                }
                JObject user = (JObject)obj["user"];
                _Sj.SinaUser.Id            = Convert.ToInt64(user["id"].ToString());
                _Sj.SinaUser.Idstr         = user["idstr"].ToString();
                _Sj.SinaUser.Class         = Convert.ToInt16(user["class"]);
                _Sj.SinaUser.Screen_name   = user["screen_name"].ToString();
                _Sj.SinaUser.Name          = user["name"].ToString();
                _Sj.SinaUser.Province      = user["province"].ToString();
                _Sj.SinaUser.City          = user["city"].ToString();
                _Sj.SinaUser.Location      = user["location"].ToString();
                _Sj.SinaUser.Description   = user["description"].ToString();
                _Sj.SinaUser.Url           = user["url"].ToString();
                _Sj.SinaUser.Profile_image = user["profile_image_url"].ToString();
                _Sj.SinaUser.Profile_url   = user["profile_url"].ToString();
                _Sj.SinaUser.Domain        = user["domain"].ToString();
                _Sj.SinaUser.Weihao        = user["weihao"].ToString();
                _Sj.SinaUser.Gender        = user["gender"].ToString();

                _Sj.SinaUser.Follow_count     = Convert.ToInt32(user["followers_count"]);
                _Sj.SinaUser.Friends_count    = Convert.ToInt32(user["friends_count"]);
                _Sj.SinaUser.Statuses_count   = Convert.ToInt32(user["statuses_count"]);
                _Sj.SinaUser.Favourites_count = Convert.ToInt32(user["favourites_count"]);

                _Sj.SinaUser.Created_at        = SinaJSON.GMT2Local(user["created_at"].ToString());
                _Sj.SinaUser.Following         = Convert.ToBoolean(user["following"].ToString());
                _Sj.SinaUser.Allow_all_act_msg = Convert.ToBoolean(user["allow_all_act_msg"].ToString());
                _Sj.SinaUser.Geo_enable        = Convert.ToBoolean(user["geo_enabled"].ToString());
                _Sj.SinaUser.Verified          = Convert.ToBoolean(user["verified"].ToString());

                _Sj.SinaUser.Verified_type = Convert.ToInt16(user["verified_type"]);

                _Sj.SinaUser.Remark             = user["remark"].ToString();
                _Sj.SinaUser.Ptype              = Convert.ToInt16(user["ptype"]);
                _Sj.SinaUser.Allow_all_comment  = Convert.ToBoolean(user["allow_all_comment"].ToString());
                _Sj.SinaUser.Avatar_large       = user["avatar_large"].ToString();
                _Sj.SinaUser.Avatar_hd          = user["avatar_hd"].ToString();
                _Sj.SinaUser.Verfied_reason     = user["verified_reason"].ToString();
                _Sj.SinaUser.Follow_me          = Convert.ToBoolean(user["follow_me"].ToString());
                _Sj.SinaUser.Online_status      = Convert.ToInt16(user["online_status"]);
                _Sj.SinaUser.Bi_followers_count = Convert.ToInt32(user["bi_followers_count"]);
                _Sj.SinaUser.Lang       = user["lang"].ToString();
                _Sj.SinaUser.Star       = Convert.ToInt16(user["star"]);
                _Sj.SinaUser.Mbtype     = Convert.ToInt16(user["mbtype"]);
                _Sj.SinaUser.Mbrank     = Convert.ToInt16(user["mbrank"]);
                _Sj.SinaUser.Block_word = Convert.ToInt16(user["block_word"]);
                _Sj.Reposts_count       = Convert.ToInt16(obj["reposts_count"]);
                _Sj.Comments_count      = Convert.ToInt16(obj["comments_count"]);
                _Sj.Attitudes_count     = Convert.ToInt16(obj["attitudes_count"]);
                _Sj.Mlevel = Convert.ToInt16(obj["mlevel"]);
                JObject vis = (JObject)obj["visible"];
                _Sj.Visiable.List_id = Convert.ToInt16(vis["list_id"]);
                _Sj.Visiable.Type    = Convert.ToInt16(vis["type"]);

                tempSj.Add(_Sj);
            }

            //去重
            //所有元素与最后一个元素相比,相同跳出循环
            //经过分析,未发现重复元素,所以关闭去重函数
            //if (count > 0)
            //{
            //    foreach (SinaJSON item in tempSj)
            //    {
            //        countSame++;
            //        if (item.Equals(Datas.sinaJSONList[count]))
            //            break;
            //    }
            //    countSame = tempSj.Count - countSame;
            //    Log.WriteToAll("重复个数:" + countSame);
            //}
            for (int i = 0; i < tempSj.Count; i++)
            {
                Datas.sinaJSONList.Add(tempSj[i]);
                using (FileStream outputFileStream = new FileStream("temp" + Datas.FileName + ".dat", FileMode.Append))
                {
                    //序列化到文件
                    BinaryFormatter binFormatter = new BinaryFormatter();
                    binFormatter.Serialize(outputFileStream, tempSj[i]);
                    outputFileStream.Close();
                }
            }
        }
Example #10
0
        /// <summary>
        /// 将json数据转换存入List<SinaJson>中
        /// </summary>
        /// <param name="Sj">ref List<SinaJSON></param>
        /// <param name="json_str">要转换的字符串</param>
        public void ConvertStr( string json_str)
        {
            int count = Datas.sinaJSONList.Count - 1;   //当前长度
            //int countSame=0;                            //重复个数
            List<SinaJSON> tempSj = new List<SinaJSON>();

            JObject javascript = (JObject)JsonConvert.DeserializeObject(json_str);
            JArray ja = (JArray)javascript["statuses"];
            SinaJSON _Sj;
            for (int i = 0; i < ja.Count; i++)
            {
                _Sj = new SinaJSON();
                JObject obj = (JObject)ja[i];
                _Sj.Created_at = SinaJSON.GMT2Local(obj["created_at"].ToString());
                _Sj.Id = Convert.ToInt64(obj["id"].ToString());
                _Sj.Mid = obj["mid"].ToString();
                _Sj.Idstr = obj["idstr"].ToString();
                _Sj.Text = obj["text"].ToString();
                _Sj.Source = obj["source"].ToString();
                _Sj.Favorite = Convert.ToBoolean(obj["favorited"]);
                _Sj.Trunctated = Convert.ToBoolean(obj["truncated"]);
                _Sj.In_reply_to_status_id = obj["in_reply_to_status_id"].ToString();
                _Sj.In_reply_to_user_id = obj["in_reply_to_status_id"].ToString();
                JArray pic = (JArray)obj["pic_urls"];
                for (int t = 0; t < pic.Count; t++)
                {
                    JObject pi = (JObject)pic[t];
                    _Sj.Pic_urls.Add(pi["thumbnail_pic"].ToString());
                }
                JObject user = (JObject)obj["user"];
                _Sj.SinaUser.Id = Convert.ToInt64(user["id"].ToString());
                _Sj.SinaUser.Idstr = user["idstr"].ToString();
                _Sj.SinaUser.Class = Convert.ToInt16(user["class"]);
                _Sj.SinaUser.Screen_name = user["screen_name"].ToString();
                _Sj.SinaUser.Name = user["name"].ToString();
                _Sj.SinaUser.Province = user["province"].ToString();
                _Sj.SinaUser.City = user["city"].ToString();
                _Sj.SinaUser.Location = user["location"].ToString();
                _Sj.SinaUser.Description = user["description"].ToString();
                _Sj.SinaUser.Url = user["url"].ToString();
                _Sj.SinaUser.Profile_image = user["profile_image_url"].ToString();
                _Sj.SinaUser.Profile_url = user["profile_url"].ToString();
                _Sj.SinaUser.Domain = user["domain"].ToString();
                _Sj.SinaUser.Weihao = user["weihao"].ToString();
                _Sj.SinaUser.Gender = user["gender"].ToString();

                _Sj.SinaUser.Follow_count = Convert.ToInt32(user["followers_count"]);
                _Sj.SinaUser.Friends_count = Convert.ToInt32(user["friends_count"]);
                _Sj.SinaUser.Statuses_count = Convert.ToInt32(user["statuses_count"]);
                _Sj.SinaUser.Favourites_count = Convert.ToInt32(user["favourites_count"]);

                _Sj.SinaUser.Created_at = SinaJSON.GMT2Local(user["created_at"].ToString());
                _Sj.SinaUser.Following = Convert.ToBoolean(user["following"].ToString());
                _Sj.SinaUser.Allow_all_act_msg = Convert.ToBoolean(user["allow_all_act_msg"].ToString());
                _Sj.SinaUser.Geo_enable = Convert.ToBoolean(user["geo_enabled"].ToString());
                _Sj.SinaUser.Verified = Convert.ToBoolean(user["verified"].ToString());

                _Sj.SinaUser.Verified_type = Convert.ToInt16(user["verified_type"]);

                _Sj.SinaUser.Remark = user["remark"].ToString();
                _Sj.SinaUser.Ptype = Convert.ToInt16(user["ptype"]);
                _Sj.SinaUser.Allow_all_comment = Convert.ToBoolean(user["allow_all_comment"].ToString());
                _Sj.SinaUser.Avatar_large = user["avatar_large"].ToString();
                _Sj.SinaUser.Avatar_hd = user["avatar_hd"].ToString();
                _Sj.SinaUser.Verfied_reason = user["verified_reason"].ToString();
                _Sj.SinaUser.Follow_me = Convert.ToBoolean(user["follow_me"].ToString());
                _Sj.SinaUser.Online_status = Convert.ToInt16(user["online_status"]);
                _Sj.SinaUser.Bi_followers_count = Convert.ToInt32(user["bi_followers_count"]);
                _Sj.SinaUser.Lang = user["lang"].ToString();
                _Sj.SinaUser.Star = Convert.ToInt16(user["star"]);
                _Sj.SinaUser.Mbtype = Convert.ToInt16(user["mbtype"]);
                _Sj.SinaUser.Mbrank = Convert.ToInt16(user["mbrank"]);
                _Sj.SinaUser.Block_word = Convert.ToInt16(user["block_word"]);
                _Sj.Reposts_count = Convert.ToInt16(obj["reposts_count"]);
                _Sj.Comments_count = Convert.ToInt16(obj["comments_count"]);
                _Sj.Attitudes_count = Convert.ToInt16(obj["attitudes_count"]);
                _Sj.Mlevel = Convert.ToInt16(obj["mlevel"]);
                JObject vis = (JObject)obj["visible"];
                _Sj.Visiable.List_id = Convert.ToInt16(vis["list_id"]);
                _Sj.Visiable.Type = Convert.ToInt16(vis["type"]);

                tempSj.Add(_Sj);
            }

            //去重
            //所有元素与最后一个元素相比,相同跳出循环
            //经过分析,未发现重复元素,所以关闭去重函数
            //if (count > 0)
            //{
            //    foreach (SinaJSON item in tempSj)
            //    {
            //        countSame++;
            //        if (item.Equals(Datas.sinaJSONList[count]))
            //            break;
            //    }
            //    countSame = tempSj.Count - countSame;
            //    Log.WriteToAll("重复个数:" + countSame);
            //}
            for (int i = 0; i < tempSj.Count; i++)
            {
                Datas.sinaJSONList.Add(tempSj[i]);
                using (FileStream outputFileStream = new FileStream("temp"+Datas.FileName+".dat", FileMode.Append))
                {
                    //序列化到文件
                    BinaryFormatter binFormatter = new BinaryFormatter();
                    binFormatter.Serialize(outputFileStream, tempSj[i]);
                    outputFileStream.Close();
                }
            }
        }