| Últimas 20 atualizações de KALLEBE LINS |
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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...
- Crie um projeto do tipo Class Library (sugestão nome CustomControls);
- Adicione uma class ao seu projeto ou utilize a classe gerada dinamicamente (sugestão
nome CustomTextBox);
- Importe os seguintes namespaces: System.Web.UI; System.Web.UI.WebControls; System.Text.RegularExpressions;
- Sua classe deve herdar a classe Control e INamingContainer;
- Crie no mesmo namespace um enumerador (enum) com os tipos que serão predefinidos
para validação (sugestão nome TypeValidation);
- Propriedade ValueType tipo TypeValidation (tipo predefinido);
- 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) ...;
- 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);
- Crie uma propriedade do tipo booleana para verificar o preenchimento obrigatorio (sugestão nome IsNotNull);
- 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);
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
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:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
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
|
|
|
|
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.
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
|
|
|
|
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:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
| |
|