Cadastre-se Revistas DevMedia Cursos
 



Últimas 20 atualizações de KALLEBE LINS

Artigo - Embutindo JavaScript em Páginas ASP.NET

Embutindo JavaScript em Páginas ASP.NET

JavaScript - Visão Geral

JavaScript, desenvolvido por Netscape Communications e Sun Microsystems, é uma linguagem de programação que podemos usar para adicionar efeitos dinâmicos a nossa página da web. HTML (Hypertext Markup Language) pode somente descrever o modo como os elementos das páginas web (text, forms, hyperlinks, tabelas, e etc [...]) são visualizados - eles não tem uma maneira de ordenar seus comportamentos. A capacidade de inserir scripts de JavaScript em páginas web nos fornece mais controle sobre como as páginas web se comportam.

Linguagens de script semelhantes ao JavaScript proporcionam a web maior poder de processamento e interatividade com o usuário. A utilização do JavaScript é comum em validações de formulário, processo de verificação de todas as informações requeridas e seus formatos - exemplo do formato de data (dd/mm/aaaa).

É importante ressaltar que a interpretação do código ocorre no lado cliente e após a página ter sido completamente baixada do servidor. Isso tem suas vantagens e desvantagens. Uma vantagem é que o JavaScript executa mais rápido que outras linguagens que comunicam direto com o servidor, porém é incapaz de acessar recursos localizados no servidor de que ele origina.

Por tudo, JavaScript não é compilado e independente, o que significa que ele tem que estar embutido em uma página web e ser executado em uma janela de navegador, pois é o navegador que faz interpretação do código JavaScript.

Embutindo Script em uma Página ASP.NET

Devido a importância dos scripts executados no lado cliente para o ASP.NET, não devemos ficar supresos ao ver a dedicação da Framework .NET implementar propriedades que nos permite gerar scripts no cliente a partir do servidor. O ASP.NET usa a nova propriedade "Page.ClientScript" para registrar e colocar as funções JavaScript na página.

Embutindo Blocos de Código no Topo

O método RegisterClientScriptBlock nos permite colocar funções JavaScript personalizadas no topo página - imediatamente após a tag <form>. As construções possíveis com este são:

  • RegisterClientScriptBlock (type, key, script);
  • RegisterClientScriptBlock (type, key, script, addScriptTags);

Onde:

  • type - o tipo de cliente script para registrar. Neste caso, o tipo é a própria página;
  • key - palavra chave que permite traçar as funções programaticamente;
  • script - conteúdo de rotina do JavaScript;
  • addScriptTags - valor booleano que indica se o ASP.NET deve incluir as tags <script> e </script> e inserir o conteúdo de rotina dentro destas.

Veja na prática:

'vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myScript As String = "function AlertHello() { alert('Hello ASP.NET'); }"
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "MyScript", myScript, _
True)
End Sub

//c#
protected void Page_Load(object sender, EventArgs e) {
string myScript = @"function AlertHello() { alert('Hello ASP.NET'); }";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", myScript,
true);
}

<!-- Resultado HTML -->
<form>
<script type="text/javascript">
<!--
function AlertHello() { alert('Hello ASP.NET'); }// -->
</script>
<!-- [conteúdo] -->
</form>

Listagem 01 - Exemplo de como utilizar o método RegisterClientScriptBlock

No exemplo da Listagem 01 nos especificamos o tipo como (vb) Me.GetType() e this.GetType() (c#), a chave "MyScript", o script para inclusão "function AlertHello(){ [...] }" e um valor "true", que permite colocar o script automaticamente dentro das tags <script>.

Quando temos um pouco de JavaScript que está trabalhando com algum controle em nossa página, e demais casos, devemos utilizar o método RegisterStartupScript em lugar de RegisterClientBlock. Por exemplo, nós usamos o seguinte código para criar uma página que inclui um simples controle <asp:TextBox> que contém um valor "Hello ASP.NET" (Listagem 02).

<asp:TextBox ID="TextBox1" Runat="server">Hello ASP.NET</asp:TextBox>

Listagem 02 - Exemplo de controle TextBox

Utilize o método RegisterClientScriptBlock para embutir um script na página que acessa o valor do controle "TextBox1", ilustrado na Listagem 03.

'vb            
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myScript As String = "alert(document.forms[0]['TextBox1'].value);"
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "myKey", myScript, _
True)
End Sub

//c#
protected void Page_Load(object sender, EventArgs e) {
string myScript = @"alert(document.forms[0]['TextBox1'].value);";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"MyScript", myScript, true);
}

Listagem 03 - Exemplo de como acessar o controle "TextBox1" com o método RegisterClientScriptBlock

Ao rodar esta página será gerado um erro de JavaScript (Figura 01).


...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
13/01/2008 22:06:00





Artigo - Criando Propagandas com AdRotator

Criando Propagandas com AdRotator

Já pensou na possibilidade de apresentar um banner com propagandas geradas randomicamente a uma certa quantidade de tempo? O controle AdRotator nos permite fazer isso. Usado para apresentar randomicamente um banner selecionado em sua página da Web, o controle AdRotator é criado com um elemento <asp:AdRotator />. Esse controle gera tags de ancora (<a>) e imagem (<img>), quando renderizado para HTML, e herda diretamente da classe DataBoundControl. Portanto, as informações de propaganda podem ser recuperadas de um arquivo XML ou de um database.

Neste artigo vamos utilizar um arquivo ".config", onde colocaremos algumas tags para processamento de cada propaganda (Listagem 01). Essas tags são:

  • Keyword - parâmetro opcional que específica a categoria (tipo de propaganda);
  • ImageUrl - URL da imagem que será apresentada na propaganda;
  • NavigateURL - específica a URL da página que o usuário seria conduzido ao clicar na imagem da propaganda;
  • AlternateText - parâmetro opcional que especifíca o texto para apresentar se a imagem está indisponível; é apresentado como um ToolTip;
  • Impressions - número que é usado para indicar como, frequentemente, a imagem seria mostrada com respeito as outras. A soma de todas as impressions deve ser menor que, aproximadamente, 2.048.000.000;
  • Height - parâmetro opcional que específica a altura da propaganda. Esse valor sobrescreve a propriedade "AdRotator.Height";
  • Width - parâmetro opcional que específica a largura da propaganda. Esse valor sobrescreve a propriedade "AdRotator.Width";

Devemos ter bastante cuidado com a configuração, nome e localização do arquivo de propaganda, assegurando que não haja vulnerabilidades de segurança. Veja algumas dicas para manipular esse arquivo:

  • Se não existir em seu projeto Web uma pasta "App_Code", então adicione, clicando em raiz do seu projeto com o botão direito / Add ASP.NET Folder / App_Code (Figura 01);
  • Coloque o arquivo de propaganda na pasta "App_Code", pois o ASP.NET não permite que navegadores acessem arquivos desta pasta;
  • Use um arquivo de extensão, semelhante ao ".config", que o ASP.NET não permita acesso pelo navegador;
  • Fixe permissões somente leitura para o arquivo de propaganda;


Figura 01 - Adicionando uma pasta App_Code no projeto Web

Criando o arquivo de configuração da Propaganda

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
08/01/2008 14:09:00





Artigo - Master Pages e Content Pages

Visão Geral sobre Páginas Mestre e Conteúdo

Páginas Mestre (Master Pages) consistem de duas partes:

  • Página Mestre (Master Page) - um arquivo ASP.NET com uma extensão .master. Uma "Master Page" contém um leiaute que inclui texto, HTML e controles de servidor. Em lugar de uma directiva "@ Page", ela contém uma directiva "@ Master". A página mestre contém todos os elementos HTML colocados no topo da página, incluindo <html>, <head> e <form>. Devemos incluir em nossa página mestre, tipicamente, a estrutura da página (usualmente uma tabela), nome da companhia, navegação de site, etc[...]. Para permitir inserção de conteúdos na página mestre devemos adicionar um ou mais controles <asp: ContentPlaceHolder />. Uma página mestre herda da classe MasterPage.
  • Conteúdo da Página (Content Page) - o conteúdo da página é definido pelo controle <asp: ContentPlaceHolder /> na página mestre. Um "Content Page" é usado em um arquivo .aspx e é fronteira para a página mestre usando o atributo MasterPageFile na directiva "@ Page".


Figura 01 - Páginas Mestre definem a estrutura e o conteúdo das páginas preenchidas em branco

A listagem abaixo demonstra uma página mestre com dois controles <asp:ContentPlaceHolder />.

'VB
<% @ Master Language="VB" %> <html> <head runat="server">
<title>Master page title</title> </head> <body>
<form id="form1" runat="server">
<table>
<tr>
<td><asp:contentplaceholder id="Principal_Pai" runat="server" /></td>
<td><asp:contentplaceholder id="Rodape_Pai" runat="server" /></td>
</tr>
</table>
</form> </body> </html>

//C#
<%@ Master Language="C#" %> <html> <head runat="server">
<title>Master page title</title> </head> <body>
<form id="form1" runat="server">
<table>
<tr>
<td><asp:contentplaceholder id="Principal_Pai" runat="server" /></td>
<td><asp:contentplaceholder id="Rodape_Pai" runat="server" /></td>
</tr>
</table>
</form> </body> </html>

Listagem 01 - Página Mestre com dois controles <asp:ContentPlaceHolder />

A seguinte listagem apresenta o conteúdo da página. Note que todo o texto e controles devem estar dentro do controle <asp:Content /> ou a página gerará um erro. Do contrário, a página comporta-se exatamente a uma página ASP.NET. Note também a diretiva "@ Page" e o atributo "MasterPageFile".

'VB
<% @ Page Language="VB" MasterPageFile="~/Master.master" Title="Content Page 1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Principal_Pai" Runat="Server"> Conteúdo Principal. </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Rodape_Pai" Runat="Server" > Conteúdo do Rodapé. </asp:content>

//C#
<% @ Page Language="C#" MasterPageFile="~/Master.master" Title="Content Page 1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Principal" Runat="Server"> Conteúdo Principal. </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Rodape" Runat="Server" > Conteúdo do Rodapé. </asp:content>

Listagem 02 - Conteúdo da página

Vantagens de páginas mestre incluem o seguinte:

  • Centralização de funcionalidades comuns de suas páginas, podendo ser atualizadas em um só lugar;
  • Facilidade de criar um conjunto de controles e código e aplicar os resultados para um conjunto de páginas. Por exemplo, podemos usar controles na página mestre para criar um menu que aplica para todas as páginas de conteúdo;
  • Controlar o leiaute final das páginas;
  • Fornecer um modelo de objeto que nos permite personalizar a página mestre de um conteúdo de página individual.

Processo de Criação de Páginas Mestre e Conteúdo

Vamos praticar. Siga os passos abaixo:

  • Adicione uma página mestre (master page) para seu site da Web com a extensão .master (Figura 02);
  • Para a página mestre, adicione tabelas, gráficos, informações registradas e outros conteúdos que aparecerão nas páginas de conteúdo. Adicione um ou mais controles <asp:ContentPlaceHolder /> (Figura 03);
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
07/01/2008 16:12:00





Artigo - Preenchendo Controles Data-Bound com XML

Preenchendo Controles Data-Bound com XML

Extensible Markup Language (XML) é uma linguagem definida pela World Wide Web Consortium (W3C, http://www.w3c.org). Podemos usar XML para criar nossos próprios elementos, sendo uma linguagem de marcação para seu próprio uso. Desse modo, XML subistitui outras linguagens de marcação semelhante a Hypertext Markup Language (HTML); no HTML todos os elementos são predefinidos. De fato, XML é uma linguagem de metamarkup - "marcação sobre marcação" - porque ela permite criar sua própria linguagem marcação.

Criar suas próprias tags é o que faz o XML ser extensível. Por exemplo, se fossemos montar um documento HTML faríamos assim:


Figura 01 - Modelo Tags HTML

Agora veja um exemplo em xml:


Figura 02 - Modelo Tags XML

Percebeu! Ao contrário do XML, o HTML, como mencionado anteriormente, possui tags já definidas. O XML, com a principal característica de fornecer estruturas de dados, nos facilita no desenvolvimento, ou seja, o XML está focado no conteúdo e não na apresentação.

Uma das características no .NET 2.0 é a redução de código, pois nos permite diminuir o número de linhas de código requeridas por uma aplicação até 70%.

Com os controles data-source, disponíveis no ASP.NET 2.0, temos a facilidade de apresentar dados diretamente do database ou de um arquivo XML. Data-source são controles que lêem dados de uma origem externa, fazendo disponibilidade desses dados para controles data-bound. Os controles data-bound podem ler os dados dos controles data-source (sem necessidade de envolver alguma linha de código) e apresentar dados de várias maneiras para os usuários de aplicações Web.

A arquitetura de controles ASP.NET 2.0 para dados hierárquicos é muito similar ao projeto de controles para dados tabular. O ASP.NET oferece ambos - controles data-source hierárquicos e controles data-bound hierárquicos.

  • Data-Source hierárquicos
  • Data-Bound hierárquicos
    • TreeView
    • Menu
    • Controles template semelhante ao controle DataList

Navegação de Site com SiteMapDataSource

No ASP.NET 2.0 representamos estruturas de navegação para um site da Web através de um arquivo chamado web.sitemap. Para adicioná-lo ao seu projeto veja a Figura 03 e Figura 04.


Figura 03 - Clique com o botão direito no Web Site e Add New Item 


Figura 04 - Selecionando Site Map 

O elemento siteMapNode, usualmente, contém os atributos Url, Title e Description, sendo que:

  • Url indica um caminho virtual que corresponde para uma página em sua ou em outra aplicação;
  • Title mostra o texto dos hyperlinks dos controles ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
04/01/2008 17:05:00





Artigo - Criando Controles de Servidor Personalizados com Validação

Criando Controles de Servidor Personalizados com Validação

Neste artigo vamos utilizar as práticas descritas no artigo "Iniciando Expressões Regulares" para criação de controles de servidor personalizados com validação.

Uma boa prática no desenvolvimento de sistemas é o tratamento de erros. Você já deve ter desenvolvido uma página com um controle TextBox, por exemplo, que inclusive estava com uma boa formatação e podia receber somente números, e derrepente quando uma outra pessoa - usuário final - foi utilizar gerou uma mensagem de erro? Você pode até arrastar um controle de validação para o formulário... uma vez... duas vezes... e mais... e mais... até você querer abreviar este trabalho criando um controle personalizado que possua controles de validação para tipos predefinidos, mensagens de erro personalizadas e outras coisas mais..

Um controle de servidor do ASP.NET renderiza (constroe) marcações, assim como script do lado cliente.

Controles personalizados de servidor podem ser criados a partir da herança de um controle existente ou herdado diretamentamente da classe base.

Devemos estar atentos quanto a reutilização do controle que iremos criar. Se deseja usar seu controle personalizado em múltiplos Web sites então desenvolva sua classe em um projeto do tipo Class Library para gerar uma .dll, que neste caso poderá ser compartilhada. Se desejar usar seu controle somente em sua página corrente da Web então adicione sua classe em seu Web site.

Podemos facilmente criar uma herança de um controle existente e adicionarmos mais propriedades, métodos e eventos. Pode-se ainda, sobreescrever métodos e propriedades para apresentar diferentes comportamentos.

Vamos praticar...

  1. Crie um projeto do tipo Class Library (sugestão nome CustomControls);
  2. Adicione uma class ao seu projeto ou utilize a classe gerada dinamicamente (sugestão nome CustomTextBox);
  3. Importe os seguintes namespaces: System.Web.UI; System.Web.UI.WebControls; System.Text.RegularExpressions;
  4. Sua classe deve herdar a classe Control e INamingContainer;
  5. Crie no mesmo namespace um enumerador (enum) com os tipos que serão predefinidos para validação (sugestão nome TypeValidation);
  6. Propriedade ValueType tipo TypeValidation (tipo predefinido);
  7. Crie um objeto tipo RegularExpressionValidator com acesso as propriedades: ValidationExpression tipo String (expressão de validação), ErrorMessage tipo String (mensagem de erro), Display tipo ValidatorDisplay (manipula apresentação do validator) ...;
  8. Crie um objeto tipo TextBox com acesso as propriedades: Text tipo String (Text do controle), override ID tipo String (ID do controle), Width tipo Unit (largura do controle);
  9. Crie uma propriedade do tipo booleana para verificar o preenchimento obrigatorio (sugestão nome IsNotNull);
  10. Sobreescreva o método CreateChildControls com chamada a três métodos que você irá implementar, a saber: CreateTextBox (manipular o controle TextBox), CreateRegularExpressionValidator (manipular o controle RegularExpressionValidator - faz validação baseado em expressões regulares), CreateRequiredFieldValidator (manipular o controle RequiredFieldValidator - resposável por verificar os campos obrigatórios, ou melhor, que obrigatoriamente devem estar preenchidos) e CreateSummary (manipular o controle SummaryValidator - resposável pela apresentação de mensagens);
Recursos Principais
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
19/09/2007 15:31:00





Artigo - Iniciando Expressões Regulares

Untitled Document

Iniciando Expressões Regulares

Expressões Regulares são padrões de caracteres que associam sequências de caracteres no texto. Podemos usar expressões regulares para extrair ou substituir porções de texto, bem como, endereço ou link de imagens em uma página HTML, modificar formato de texto ou remover caracteres inválidos.

Não podemos esquecer que a sintaxe de Expressões Regulares são case-sensitive, ou seja, "abc" é diferente de "ABC".

Neste artigo apresentaremos os métodos mais utilizados da classe Regex, trabalharemos as sintaxes de referência de expressões regulares mais utilizadas, seguida de práticas e validações úteis do dia-a-dia.

1. Regex

No .NET a classe Regex representa uma expressão regular imutável. Esta classe contém diversos métodos estáticos que nos permite trabalhar com expressões regulares. Para usarmos o objeto Regex devemos importar o namespace System.Text.RegularExpressions.

Segue relação de métodos mais utilizados da classe Regex, a saber:

Métodos Regex
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
14/09/2007 10:06:00





Artigo - Soluções rápidas no trabalho com char e string (VB e C#(csharp)) – Parte III

Soluções rápidas no trabalho com char e string (VB e C#) – Parte III

 

9. Encontrar Todas as Ocorrências de um Texto Específico em uma String

 

Problema:

Você deseja contar a quantidade de ocorrências de um caractere ou uma palavra em uma string.

 

Solução:

Use o método String.IndexOf para localizar a ocorrência desejada.

O método abaixo retorna a quantidade de ocorrências:

 

' vb

Private Function QuantidadeAssociada(ByVal stringParaConsulta As String, _

ByVal procurarPor As String) As Integer

 

Dim Posicao As Integer = 0

Dim Ocorrencias As Integer = 0

 

' Esse loop existe enquanto Position = -1, que significa

' que não encontrou (caractere ou palavra) associada(s).

Do

Posicao = stringParaConsulta.IndexOf(procurarPor, Posicao)

If Posicao <> -1 Then

' Uma ocorrencia encontrada.

' Incrementa a quantidade de ocorrencias.

Ocorrencias += 1

 

' Move para frente na string a quantidade

' igual a quantidade da termo procurado.

Posicao += procurarPor.Length

End If

Loop Until Posicao = -1

 

Return Ocorrencias

 

End Function

 

// c#

private int QuantidadeAssociada(String stringParaConsulta ,

String procurarPor)

{

int Posicao = 0;

int Ocorrencias = 0;

 

// Esse loop existe enquanto Position = -1, que significa

// que não encontrou (caractere ou palavra) associada(s).

do

{

Posicao = stringParaConsulta.IndexOf(procurarPor, Posicao);

if (Posicao != -1)

{

// Uma ocorrencia encontrada.

// Incrementa a quantidade de ocorrencias.

Ocorrencias += 1;

 

// Move para frente na string a quantidade

// igual a quantidade da termo procurado.

Posicao += procurarPor.Length;

}

} while (Posicao != -1);

 

return Ocorrencias;

}

 

Agora é só consultar:

 

' vb

Dim Text As String = "consultando uma ocorrencia da palavra 'lição'. " & _

"consultando uma ocorrencia da palavra 'lição'. " & _

"consultando uma ocorrencia da palavra 'lição'. "

 

Response.Write(QuantidadeAssociada(Text, "lição"))

Response.Write("<br />")

Response.Write(QuantidadeAssociada(Text, "a"))

 

// c#

String Text= "consultando uma ocorrencia da palavra 'lição'. " +

"consultando uma ocorrencia da palavra 'lição'. " +

"consultando uma ocorrencia da palavra 'lição'. ";

 

Response.Write(QuantidadeAssociada(Text, "lição"));

Response.Write("<br />");

Response.Write(QuantidadeAssociada(Text, "a"));

 

Saída:

3

21

 

 

10. Substituir Todas as Ocorrências de um Texto Específico em uma String

 

Problema:

Você deseja substituir cada ocorrência de uma palavra ou caractere em uma string.

 

Solução:

Usar o método String.Replace.

 

' vb

Dim Texto As String = "consultando uma ocorrencia da palavra 'lição'." & _

"consultando uma ocorrencia da palavra 'lição'. " & _

"consultando uma ocorrencia da palavra 'lição'. "

 

Dim TextoSubstituido As String = Texto.Replace("lição", "questão")

 

// c#

String Texto = "consultando uma ocorrencia da palavra 'lição'." +

"consultando uma ocorrencia da palavra 'lição'. " +

"consultando uma ocorrencia da palavra 'lição'. ";

 

String TextoSubstituido = Texto.Replace("lição", "questão");

 

Saída:

consultando uma ocorrencia da palavra 'questão'. consultando uma ocorrencia da palavra 'questão'. consultando uma ocorrencia da palavra 'questão'.

 

 

11. Inverter a Seqüência de uma String

 

Problema:

Você necessita reverter a ordem das letras em uma string.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
27/08/2007 18:49:00





Artigo - Soluções rápidas no trabalho com char e string (VB e C#(csharp)) – Parte I

Soluções rápidas no trabalho com char e string (VB e C#) – Parte I

 

Esse tutorial foi desenvolvido com objetivo de apresentar algumas das maneiras que podem ser utilizadas para se trabalhar com strings. Foram levantados alguns problemas simples que ocorrem no dia-a-dia e que, devido a pouca prática, acabam nos atrapalhando na hora de implementarmos aquele código tão simples.

 

Primeiro vamos entender o tipo que iremos trabalhar.

 

A classe System.String é um tipo referência que se comporta semelhante a um tipo valor. Por exemplo, quando você compara duas strings, você está comparando o conteúdo contido na string, não a referência do objeto;

 

Strings são imutáveis, que significa que ela não pode ser modificada. Operações que aparecem para modificar a string atual criam uma nova string, ou melhor, a string é modificada só que armazenada em uma nova posição na memória;

 

A string é uma seqüência do tipo Char. Qualquer referência para um caractere dentro de uma string é tratada como um char;

 

A classe System.Text.StringBuilder fornece um conjunto de métodos para construir e manipular strings dentro do Buffer. Quando as operações são completadas, o conteúdo pode ser convertido em uma string.

 

Para facilitar a navegação, os itens são apresentados na seguinte ordem:

 

1.Formatando Números dentro de Strings

2.Formatar Data e Hora

3.Recuperar uma Porção de uma String

4.Criar uma String Consistindo de um Caractere Repetido

5.Modificar a Caixa de todos os Caracteres em uma String

6.Desempenhar Case-Insensitive em Comparações de String

7.Interagir com Todos os Caracteres em uma String

8.Analisar uma Palavra dentro de uma Frase

9.Encontrar Todas as Ocorrências de um Texto Específico em uma String

10.Substituir Todas as Ocorrências de um Texto Específico em uma String

11.Inverter a Seqüência de uma String

12.Testando se a String e Null ou Empty

13.Inserir um Caractere Especial em uma String

14.Manipular Strings Rapidamente (StringBuilder)

15.Manipular um URI

 

 

1.   Formatar Números dentro de Strings

 

Problema:

Você deseja formatar números dentro de uma string qualquer para mostrar em algum controle ou mesmo imprimir na tela.

 

Solução:

Aplique ao objeto string o método Format, e use ele para personalizar o código de saída.

 

klsrtcsfig01.jpg 

Figura 01. Exemplo de String.Format

[Core C# and .NET / By Stephen C. Perry]

 

Como podemos ver, cada item do formato consiste de um índice e um alinhamento opcional e o formato da string.

 

·         O index é um inteiro baseado em zero, que indica o argumento que está sendo aplicado. O index pode ser repetido para referir o mesmo argumento mais de uma vez;

·         O alignment, opcional, é um inteiro que indica a largura mínima da área que contém o valor formatado. Se o valor do alinhamento é positivo, o valor é justificado a direita; se o valor é negativo, é justificado a esquerda;

·         O format string, opcional, contém o código formatado para ser aplicado para o valor do argumento. Você pode ainda informar a quantidade de casas decimais ou mesmo o formato de número preenchido com zero, no caso do tipo inteiro. Por exemplo, ("{0:C2}", 4834.5) tem a saída como R$ 4.834,50 e ("{0:D6}", 4834) como 004834.

 

Padrão de Formatação de Strings

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
27/08/2007 18:48:00





Artigo - Soluções rápidas no trabalho com char e string (VB e C#(csharp)) – Parte II

Soluções rápidas no trabalho com char e string (VB e C#) – Parte II

 

4. Criar uma String Consistindo de um Caractere Repetido

 

Problema:

Você necessita rapidamente criar uma string que consiste de um simples caractere repetido em vários tempos (ex.: "------------").

 

Solução:

 

' vb

Dim hifen As New String("-"c, 50)

Response.Write(hifen)

 

// c#

String hifen = new String('-', 50);

Response.Write(hifen);

 

Saída:

--------------------------------------------------

 

5. Modificar a Caixa de todos os Caracteres em uma String

 

Problema:

Você deseja em caixa alta ou baixa todas às letras em uma string.

 

Solução:

Os métodos ToUpper() e ToLower() (c# e vb) fazem facilmente a conversão de strings para caixa alta ou baixa, ou ainda mescla esta conversão (vb). Podemos também utilizar, como padrão no VB, os métodos UCase() e LCase(). Para mesclar as caixas utilize a função StrConv() do VB.

 

' vb

Dim Texto, CaixaMista, CaixaAlta, CaixaBaixa As String

Texto = "Visual Studio"

 

CaixaAlta = Texto.ToUpper()

' ToUpper() retorna "VISUAL STUDIO"

 

CaixaBaixa = CaixaAlta.ToLower()

' ToLower() retorna "visual studio"

 

CaixaAlta = UCase(Texto)

' UCase() retorna "VISUAL STUDIO"

 

CaixaBaixa = LCase(CaixaAlta)

' LCase() retorna "visual studio"

 

CaixaMista = StrConv(CaixaBaixa, VbStrConv.ProperCase)

' StrConv(str, ProperCase) retorna "Visual Studio"

 

// c#

String MixedCase, UpperCase, LowerCase;

MixedCase = "Visual Studio";

 

UpperCase = MixedCase.ToUpper();

// UpperCase é agora "VISUAL STUDIO"

 

LowerCase = MixedCase.ToLower();

// LowerCase é agora "visual studio"

 

 

6. Desempenhar Case-Insensitive em Comparações de String

 

Problema:

Você necessita comparar duas strings para ver se elas associam até mesmo o tipo de caixa (alta ou baixa) (case-sensitive).

 

Solução:

Use a versão de sobrecarga do método estático String.Compare que aceita um parâmetro Boolean para ignoreCase.

 

Retorna 0 (zero) se as strings são iguais, -1 se a primeira string for menor que a segunda (StringA < StringB), ou 1 se a primeira string for maior que a segunda (StringA > StringB). Opcionalmente, o método também aceita um parâmetro booleano chamado ignoreCase que desempenha comparações case-sensitive.

 

' vb

If String.Compare(StringA, StringB, True) = 0 Then

      ' Strings associadas.

End If

 

// c#

if (String.Compare(StringA, StringB, True) = 0)

{

// Strings associadas.

}

 

Ou ainda:

 

' vb

If StringA.ToUpper() = StringB.ToUpper() Then

      ' Strings associadas.

End If

 

// c#

if (StringA.ToUpper() = StringB.ToUpper())

{

      // Strings associadas.

}

 

 

7. Interagir com Todos os Caracteres em uma String

 

Problema:

Você deseja examinar cada caractere em uma string individualmente.

 

Solução:

 

' vb

Dim MyString As String = "Iteragindo com caracteres"

Dim i As Integer

For i = 0 To MyString.Length - 1

      Response.Write("Caractere: " & MyString.Chars(i) & "<br />")

Next

 

// c#

String MyString = "Iteragindo com caracteres";

Char[] caractere = MyString.ToCharArray();

for (int i = 0; i < (MyString.Length - 1); i++)

{

Response.Write("Caractere: " + caractere[i] + "<br />");

}

 

Ou ainda:

 

' vb

Dim MyString As String = "Iteragindo com caracteres"

Dim Letter As Char

For Each Letter In MyString

      Response.Write("Caractere: " & Letter & "<br />")

Next

 

// c#

String MyString = "Iteragindo com caracteres";

foreach (Char Letter in MyString)

{

Response.Write("Caractere: " + Letter + "<br />");

}

 

Saída:

Caractere: I

Caractere: t

Caractere: e

Caractere: r

Caractere: a

Caractere: g

Caractere: i

Caractere: n

Caractere: d

Caractere: o

Caractere:

Caractere: c

Caractere: o

Caractere: m

Caractere:

Caractere: c

Caractere: a

Caractere: r

Caractere: a

Caractere: c

Caractere: t

Caractere: e

Caractere: r

Caractere: e

Caractere: s

 

Você pode verificar também o tipo do caractere, a saber:

 

IsDigit: número de 0–9.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
27/08/2007 18:47:00





 

CONSULTOR .NET | ARQUITETO DE SOFTWARE | COORDENADOR DE PROJETOS .NET | Técnico em Sistemas Integrados de Gestão Empresarial | MCP Foundation | MCTS Web | MCTS Distributed | MCTS SQL SERVER 2005 | MCTS Windows Based | Microsoft Team Foundation Server 2010 | Microsoft Sharepoint 2010
Arquivo de atualizações
 2008
 2007

Estatísticas do Autor:
Número de posts: 9
Características dos posts deste autor:
Conteúdo:
Utilidade:
49 6
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group