Lomadee, uma nova espcie na web. A maior plataforma de afiliados da Amrica Latina
mar
10
2010

Formatando Strings rapidamente com C#

Post retirado do site ASPNETi escrito por Mauricio Junior.

Requisitos:

Ferramenta dedesenvolvimento
Visual Studio .NET
Framework .NET3.5Linguagem C#.NET

No caso de ter um CPF semformato, CEP, Telefone, Data e outros, basta usar o método abaixo que tudo seráformatado de uma forma simples e fácil. Na prática, passo apenas o formato queeu quero usando sharp ou cerquilha (#) e a string sem formato algum, no final ométodo retorna a string formatada. Por exemplo: (“##/##/###”, “12092010”) e ovalor retornado é “12/09/2010”.

Depois que comecei a utilizar esse tipo deformato, nunca mais tive que ficar re-formatando data, valores, CPF, CEP eoutros. Não quero estender muito o arquivo falando, pois é simples de usar equero ser simples no explicar.

protected string FormataString(string mascara, string valor)
{
string novoValor = string.Empty;
int posicao = 0;

for (int i = 0; mascara.Length > i; i++)
{

if (mascara[i] == ‘#’)
{

if (valor.Length > posicao)

{

novoValor = novoValor + valor[posicao];

posicao++;

}

else

break;

}

else

{

if (valor.Length > posicao)

novoValor = novoValor + mascara[i];

else

break;

}
}

return novoValor;
}

O primeiro passo analisando o método coloquei como protected porque é interno do meu sistema. Retorna “string” e recebe dois parâmetros de entrada. O primeiro parâmetro de entrada é a “mascara” e osegundo “valor” que deseja formatar. No método, primeiro de tudo é dado um“for” para percorrer os dados e colocar a máscara de acordo com que foipassado. Depois da máscara colocada, retorna o dado formatado.

Lembro que é necessário mandar o valor semformato nenhum. Para chamar a função basta fazer o seguinte:

//Formatando CPF
Response.write(FormataString(“###.###.###-##”, “09289209309”));

//Formatando Data
Response.write(FormataString(“##/##/####”, “12092010”));

//Formata CEP
Response.write(FormataString(“##.###-###”, “70000000”));

//Formata valor
Response.write(FormataString(“##,##”, “2309”));

O resultado é muito bom e me ajuda muito aformatar os dados para mostrar em tela. Funciona com os grids e tudo mais sem nenhum problema.

Leave a comment

Flickr Photostream

photo photo photo photo photo photo