Encontrar o valor no texto


por Mauricio Junior em 12/1/2012

Hoje gostaria de informar e mostrar como encontrar um valor de uma string grande, isto é, “stringona” separada com algum caracter especial. Antigamente existia o Split e ainda existe, mas para este nosso caso não é apropriado.

Para quem quiser ver mais sobre o Split no C#.NET, acesse o link abaixo:

http://ecode10.com/artigo/554/Usando+Split+No+CSharp.aspx

Tag: Microsoft .NET, ASP.NET, C#.NET, Framework .NET

 

                  Este documento informa como pegar valores específicos dentro de um conjunto de caracteres misturados ou juntados sem organização. Para isso, o presente documento mostra exemplos reais e funcionais.

                  O primeiro passo é construir um método específico que faça isso. (Code 1.1)

 

        /// <summary>

        /// Busca um texto associado a um campo em uma linha de informações.

        /// </summary>

        /// <param name="title">Nome do campo.</param>

        /// <param name="textLine">Linha de informações.</param>

        /// <param name="sep">Caracter separador.</param>

        /// <param name="appendTitle">Se true, inclui o nome do campo no retorno.</param>

        /// <returns>O texto associado a um campo em uma linha de informações.</returns>

        public static string EncontrarValor(string title, string textLine, char sep, bool appendTitle)

        {

            if (String.IsNullOrEmpty(title)) return "";

            if (String.IsNullOrEmpty(textLine)) return "";

            if (sep == '\u0000') return "";

 

            int titlePos = textLine.IndexOf(title + "=");

 

            if (titlePos == -1) return "";

 

            if (!appendTitle) titlePos += title.Length + 1;

 

            int SepPos = textLine.IndexOf('|', titlePos);

 

            if (SepPos > -1)

                return textLine.Substring(titlePos, (SepPos - titlePos));

            else

                return textLine.Substring(titlePos);

        }

 

Code 1.1

                  Este método é do tipo estático, tem como retorno o tipo string e recebe como parâmetro vários tipos de variáveis diferentes. A primeira do tipo string, a segunda também do tipo string, o terceiro char e o quarto bool.

                  O primeiro parâmetro é o nome do campo que deseja buscar, o segundo é o valor misturado “aquele stringao” , o terceiro é o tipo de caracter de separação porexemplo: “ §”,  “-“, “/”, “|” ou qualquer outro parecido. Você escolhe qual caracter. O último campo de parâmetro de entrada deve ser passado true ou false. Isso quer dizer que você pode receber de volta o campo e o texto ou só o texto. Se for passado false, você recebe sóo valor do texto e se for passado true você recebe o valor e nome do campo.

                  Não é nada complexo mas precisamos desse tipo de coisa. Para adiantar o meu caso, criei outros métodos para consumir desse método maior. (Code 1.2 e 1.3)

 

        /// <summary>

        /// Busca um texto associado a um campo em uma linha de informações.

        /// </summary>

        /// <param name="title">Nome do campo.</param>

        /// <param name="textLine">Linha de informações.</param>

        /// <returns>O texto associado a um campo em uma linha de informações.</returns>

        public static string FindTextValue(string title, string textLine)

        {

            return EncontrarValor(title, textLine, '|', false);

        }

 

Code 1.2

                  O método Code 1.2 consome o Code 1.1 passando dois valores fixos como o char “|”e o “false” informando que só quer o valor de retorno e não o campo.

 

        /// <summary>

        /// Busca um texto associado a um campo em uma linha de informações.

        /// </summary>

        /// <param name="title">Nome do campo.</param>

        /// <param name="textLine">Linha de informações.</param>

        /// <param name="sep">Caracter separador.</param>

        /// <returns>O texto associado a um campo em uma linha de informações.</returns>

        public static string FindTextValue(string title, string textLine, char sep)

        {

            return EncontrarValor(title, textLine, sep, false);

        }

 

Code 1.3

                  O método Code 1.3 já passa apenas um valor fixo que é o último “false” para não retornar o valor o e campo.

                  Imagine a sua string dessa maneira: NOME=MAURICIOJUNIOR|IDADE=29|ENDERECO=WWW.MAURICIOJUNIOR.ORG|TELEFONE=0090980

                  Esses métodos pegam a “stringona” e separada. Para utilizar, escrevi o código abaixo para a plataforma Windows Forms. (Code 1.4)

 

        private void Form1_Load(object sender, EventArgs e)

        {

            string valor = "NOME=MAURICIO JUNIOR|IDADE=29|ENDERECO=WWW.MAURICIOJUNIOR.ORG";

            string nome = Util.EncontrarValor("NOME", valor, '|', false);

            MessageBox.Show(nome);

        }

 

Code 1.4

                  O resultado do Code 1.4 mostra em alerta. (Imagem 1)




Imagem 1

                  Pedi agora para pegar a IDADE em vez do NOME. (Imagem 2)


Imagem 2

                  Bom, espero que tenha gostado e qualquer dúvida pode entrar em contato. 
voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Escrever log de erro e warning
Verifica Browser utilizando C#
Alongar é preciso
Dica para Auto Completar Código
Promo Code do Livro CSharp .NET para Web
Vídeo aula explicando o que é o FreeTextBox e como utilizar em seu projetos ASP.NET.
Comando para compilação .NET
II Encontro .NET em Brasília
CES em Las Vegas
Aplicativo iCantada Free
Detectando erro a todo custo
Trabalhando com LinkButton dentro do Gridview
Trabalhando com GridView, RowCommand e DataKeysNames
O encontro Steve Jobs e Bill Gates
Promoções de livros móveis .NET
MSDN Media Center - download de vídeos
Vídeo Live Search
Windows Phone 7, nada como aprender vendo
Educação no Brasil
Generics usando Object DataSource
Chama método que está dentro do COM PLUS (COM +)
Vídeo - Teste do Windows 7 RC
Permitir Teste pelo Browser no WebService
ReportViewer sem DataSet Tipado e gerando PDF
Windows Form - Retornando valor entre formulários
URL do WebService Dinâmica
IsAlphaNumeric
Channel9 - Soap, OData, Json
Inserindo Usuário no Banco de Dados MYSQL Usando Tecnologia AJAX
Plataforma Web ou Windows Forms ?
Ext JS
SmartNavigation – 1.0 e 1.1 MaintainScroll PositionOn Postback – 2.0
Vídeos SQL Server 2005 Express Gratuitamente
Trabalhando com diretório e arquivo
Nova versão iCredCard aprovado pela Apple