Example #1
0
        /// <summary>
        /// Método que busca no arquivo o texto passado por referência e retorna uma lista explicando cada incidência da palavra em forma de xml
        /// </summary>
        /// <param name="textoParaBusca"></param>
        /// <param name="file"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public static List <string> BuscaEmArquivo(string textoParaBusca, FileInfo file, ref string mensagemErro)
        {
            Util.CL_Files.WriteOnTheLog("DocumentSerach.BuscaEmArquivo", Util.Global.TipoLog.DETALHADO);

            CL_Files fileToRead = new CL_Files(file.FullName);

            mensagemErro = "";
            List <string> texto_file = fileToRead.ReadArchive(ref mensagemErro);

            if (!string.IsNullOrEmpty(mensagemErro))
            {
                return(null);
            }

            List <string> saida       = new List <string>();
            int           linha_texto = 0;

            foreach (string texto in texto_file)
            {
                if (texto.ToUpper().Contains(textoParaBusca.ToUpper()))
                {
                    StringBuilder saidaTexto = new StringBuilder();
                    saidaTexto.Append("\t<match>" + Environment.NewLine);
                    saidaTexto.Append("\t\t<sentence>" + Environment.NewLine);
                    saidaTexto.Append("\t\t\t" + textoParaBusca + Environment.NewLine);
                    saidaTexto.Append("\t\t</sentence>" + Environment.NewLine);
                    saidaTexto.Append("\t\t<file>" + Environment.NewLine);
                    saidaTexto.Append("\t\t\t" + file.FullName + Environment.NewLine);
                    saidaTexto.Append("\t\t</file>" + Environment.NewLine);
                    saidaTexto.Append("\t\t<line>" + Environment.NewLine);
                    saidaTexto.Append("\t\t\t" + linha_texto.ToString().Trim() + Environment.NewLine);
                    saidaTexto.Append("\t\t</line>" + Environment.NewLine);
                    saidaTexto.Append("\t\t<text>" + Environment.NewLine);
                    saidaTexto.Append("\t\t\t" + texto + Environment.NewLine);
                    saidaTexto.Append("\t\t</text>" + Environment.NewLine);
                    saidaTexto.Append("\t</match>" + Environment.NewLine);


                    saida.Add(saidaTexto.ToString());
                }
                linha_texto++;
            }

            fileToRead = null;
            texto_file.Clear();
            texto_file = null;

            return(saida);
        }