Beispiel #1
0
        private void GetAllIndiceHashStructureValue()
        {
            try
            {
                using (FileStream readStream = new FileStream(strNameIndiceHashtags, FileMode.Open))
                {
                    while (readStream.Position < readStream.Length)
                    {
                        if (readStream.Position > 0)
                        {
                            readStream.Position += 1;
                        }

                        BinarySearchAlgorithm bsa     = new BinarySearchAlgorithm();
                        StrFileIndiceHashtags oReturn = bsa.GetFileValue <StrFileIndiceHashtags>(readStream);
                        StringBuilder         ids     = new StringBuilder();
                        for (int i = 0; i < 1000; i++)
                        {
                            if (oReturn.Ids[i] != 0)
                            {
                                if (i == 0)
                                {
                                    ids.Append(oReturn.Ids[i]);
                                }
                                else
                                {
                                    ids.Append("," + oReturn.Ids[i]);
                                }
                            }
                        }
                        Console.WriteLine(string.Format("HashTag: {0}|Ids: [{1}]", oReturn.Hashtag, ids.ToString().Trim()));
                    }
                }

                Console.WriteLine("Pressione uma tecla para continuar.");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #2
0
        private void GetPositionIndexDataByHashTag()
        {
            Console.Clear();

            try
            {
                Console.WriteLine("Informe a HashTag");
                string hashTagBusca = Console.ReadLine();

                if (hashTagBusca.Trim() == "")
                {
                    throw new Exception("Erro");
                }

                DateTime begin = DateTime.UtcNow;

                List <FileStream> listaStream = new List <FileStream>();
                listaStream.Add(new FileStream(strNameFile, FileMode.Open));
                listaStream.Add(new FileStream(strNameIndiceHashtags, FileMode.Open));

                while (listaStream[1].Position < listaStream[1].Length)
                {
                    if (listaStream[1].Position > 0)
                    {
                        listaStream[1].Position += 1;
                    }

                    BinarySearchAlgorithm bsa     = new BinarySearchAlgorithm();
                    StrFileIndiceHashtags oReturn = bsa.GetFileValue <StrFileIndiceHashtags>(listaStream[1]);
                    if (oReturn.Hashtag.Contains(hashTagBusca.Trim()))
                    {
                        for (int i = 0; i < 1000; i++)
                        {
                            if (oReturn.Ids[i] == 0)
                            {
                                break;
                            }

                            StrFileIndice sfi = new StrFileIndice();
                            if (bsa.BinarySearchById(oReturn.Ids[i], strNameFileIndice, ref sfi))
                            {
                                listaStream[0].Seek(sfi.Posicao, SeekOrigin.Begin);
                                StrFile oReturnData = bsa.GetFileValue <StrFile>(listaStream[0]);
                                Console.WriteLine(string.Format("Id: {0}", oReturnData.Id));
                                Console.WriteLine(string.Format("Usuário: {0}", oReturnData.Usuario));
                                Console.WriteLine(string.Format("Mensagem: {0}", oReturnData.Mensagem));
                                Console.WriteLine(string.Format("Data: {0}", oReturnData.Data.Trim() + "9"));
                                Console.WriteLine(string.Format("País: {0}", oReturnData.Pais));
                                Console.WriteLine(string.Format("Hashtags: {0}", oReturnData.HashTags));
                                Console.WriteLine("---------------------------------------------------------------------");
                            }
                        }
                    }
                }

                listaStream[0].Close();
                listaStream[1].Close();
                listaStream[0].Dispose();
                listaStream[1].Dispose();

                double total = (DateTime.UtcNow - begin).TotalMilliseconds;

                DesempenhoModel dm = new DesempenhoModel();
                dm.NomeTeste     = "Tempo dado hashtag(Arquivo)";
                dm.TempoExecucao = total;
                dm.Data          = DateTime.Now;
                desempenhoDao.Store(dm);

                Console.WriteLine("Pressione uma tecla para continuar.");
                Console.ReadKey();
            }
            catch (Exception)
            {
                Console.WriteLine("Dados inválidos.");
                Console.WriteLine("Pressione uma tecla para continuar.");
                Console.ReadKey();
            }
        }
Beispiel #3
0
        private void GenerateAllIndiceHashtags()
        {
            Console.Clear();

            try
            {
                Console.WriteLine("Aguarde. Gerando índice.");

                List <FileStream> listaStream = new List <FileStream>();
                listaStream.Add(new FileStream(strNameFile, FileMode.Open));
                listaStream.Add(new FileStream(strNameIndiceHashtags, FileMode.Open));

                listaStream[0].Seek(0, SeekOrigin.Begin);
                while (listaStream[0].Position < listaStream[0].Length)
                {
                    if (listaStream[0].Position > 0)
                    {
                        listaStream[0].Position += 1;
                    }

                    BinarySearchAlgorithm bsa = new BinarySearchAlgorithm();
                    StrFile  oReturn          = bsa.GetFileValue <StrFile>(listaStream[0]);
                    string[] hashtagsarray    = oReturn.HashTags.Split("#");
                    foreach (string hashtag in hashtagsarray)
                    {
                        if (hashtag.Trim() != "" && (hashtag.ToLower().Contains("rock") || hashtag.ToLower().Contains("metal") || hashtag.ToLower().Contains("punk") || hashtag.ToLower().Contains("hard")))
                        {
                            FileWrite fw         = new FileWrite();
                            bool      achou      = false;
                            string    hashtagAux = "#" + hashtag.Trim();
                            listaStream[1].Seek(0, SeekOrigin.Begin);
                            while (listaStream[1].Position < listaStream[1].Length)
                            {
                                if (listaStream[1].Position > 0)
                                {
                                    listaStream[1].Position += 1;
                                }

                                StrFileIndiceHashtags oReturnInd = bsa.GetFileValue <StrFileIndiceHashtags>(listaStream[1]);
                                if (oReturnInd.Hashtag.Trim() == hashtagAux.Trim())
                                {
                                    achou = true;
                                    for (int i = 1; i < 1000; i++)
                                    {
                                        if (oReturnInd.Ids[i] == 0)
                                        {
                                            oReturnInd.Ids[i] = oReturn.Id;
                                            break;
                                        }
                                    }
                                    long tamanhoBytes = Marshal.SizeOf(typeof(StrFileIndiceHashtags));
                                    if (listaStream[1].Position > 0)
                                    {
                                        listaStream[1].Position -= tamanhoBytes;
                                    }
                                    byte[] buf = fw.GetBytes(oReturnInd);
                                    listaStream[1].Write(buf);
                                }
                            }

                            if (!achou)
                            {
                                StrFileIndiceHashtags sfih = new StrFileIndiceHashtags();
                                sfih.Hashtag = hashtagAux;
                                sfih.Ids     = new long[1000];
                                sfih.Ids[0]  = oReturn.Id;
                                sfih.NewLine = '\n';
                                long position = 0;
                                if (listaStream[1].Length > 0)
                                {
                                    position = listaStream[1].Length + 1;
                                    listaStream[1].Position = position;
                                }
                                byte[] buf = fw.GetBytes(sfih);
                                listaStream[1].Write(buf);
                            }
                        }
                    }
                }

                listaStream[0].Close();
                listaStream[1].Close();
                listaStream[0].Dispose();
                listaStream[1].Dispose();

                Console.WriteLine("Pressione uma tecla para continuar.");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }