![]() |
|||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como pesquisar e selecionar um item em uma ListBox do DelphiQuantidade de visualizações: 16835 vezes |
O trecho de código abaixo mostra como podemos usar a mensagem LB_SELECTSTRING da Windows API para pesquisar e selecionar um item em uma ListBox. Veja que aqui eu usei a função InputBox() para permitir ao usuário inserir o texto a ser pesquisado. Note também o valor -1 fornecido como wParam para a função SendMessage(). Este valor faz com que a busca se inicie no primeiro item da lista e continue até o final da lista. Veja o código: procedure TForm1.Button2Click(Sender: TObject); var pesquisa: string; begin // vamos solicitar o texto a ser pesquisado na ListBox pesquisa := InputBox('Pesquisar', 'Informe o texto', ''); // vamos pesquisar e selecionar o item encontrado if SendMessage(ListBox1.Handle, LB_SELECTSTRING, - 1, Longint(PChar(pesquisa))) <> LB_ERR then begin ShowMessage('O texto pesquisado foi encontrado no ' + 'índice: ' + IntToStr(ListBox1.ItemIndex)); end else begin ShowMessage('O texto pesquisado não foi encontrado.'); end; end; Note que a busca efetuada por LB_SELECTSTRING não é sensitiva a maiúsculas e minúsculas. Assim, Osmar e OSMAR são tratadas igualmente. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
jQuery ::: Dicas & Truques ::: Atributos ou Propriedades HTML |
Como obter valores dos atributos de um elemento HTML usando a função attr() do jQueryQuantidade de visualizações: 16033 vezes |
O exemplo abaixo mostra como obter os valores dos atributos de um elemento HTML usando a notação attr(). O retorno é uma string contendo o valor do atributo:<script type="text/javascript"> <!-- function obterAtributo(){ // Este exemplo mostra como obter o valor do // atributo value de uma caixa de texto com // o id "nome" var valor = $('#nome').attr("value"); window.alert(valor); } //--> </script> |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar a existência de uma substring em uma string usando a função strstr() da linguagem CQuantidade de visualizações: 10206 vezes |
Nesta dica mostro como pesquisar uma substring dentro de uma string. Para isso usaremos a função strstr() do header string.h. Esta função aceita a string e a substring que queremos pesquisar e retorna NULL se a substring não for encontrada. Caso esta esteja contida na string, um ponteiro para o caractere inicial de sua ocorrência é retornado. Veja o código:#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char frase[] = "Gosto muito de Java e Python"; // vamos pesquisar a substring "Java" na string char *res = strstr(frase, "Java"); // se for NULL a substring não foi encontrada if(res == NULL) printf("A substring nao foi encontrada"); else printf("A substring foi encontrada: %s", res); puts("\n\n"); system("PAUSE"); return 0; } Note que neste exemplo, a substring é localizada e o conteúdo de res é o restante da string a partir do primeiro caractere da substring pesquisada. |
Java ::: Pacote java.lang ::: String |
Como quebrar uma string Java em suas partes usando o método split() da classe StringQuantidade de visualizações: 4001 vezes |
O método split() da classe String é usado quando queremos quebrar uma string em suas partes e obter, como retorno, um vetor (matriz ou array) de objetos da classe String. Veja sua assinatura:public String[] split(String regex) Veja que o argumento regex é uma expressão regular que será usada para separar as partes da string. Veja um trecho de código no qual separamos todas as palavras de uma frase usando o caractere de espaço como delimitador: package estudos; public class Estudos{ public static void main(String[] args) { String frase = "Gosto muito de programar em Java e PHP"; // vamos obter as partes da string usando o espaço como delimitador String partes[] = frase.split("\\s+"); // vamos percorrer as partes obtidas for(int i = 0; i < partes.length; i++){ System.out.println(partes[i]); } } } Ao executarmos este código nós teremos o seguinte resultado: Gosto muito de programar em Java e PHP Tenha cuidado. Se uma expressão regular inválida for fornecida para o método split(), uma exceção do tipo PatternSyntaxException será atirada. Há uma sobrecarga do método split() com a seguinte assinatura: public String[] split(String regex, int limit) Esta sobrecarga nos permite definir a quantidade de vezes que o padrão da expressão regular será aplicado e afeta a quantidade de partes da string que serão retornados. Veja: package estudos; public class Estudos{ public static void main(String[] args) { String frase = "Gosto muito de programar em Java e PHP"; // vamos obter as partes da string usando o espaço como delimitador String partes[] = frase.split("\\s+", 3); // vamos percorrer as partes obtidas for(int i = 0; i < partes.length; i++){ System.out.println(partes[i]); } } } Ao executarmos este código o resultado será: Gosto muito de programar em Java e PHP |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como obter parte de uma string usando a função substr() da linguagem PHPQuantidade de visualizações: 169 vezes |
Nesta dica eu mostrarei como podemos usar a função substr() do PHP para obter uma substring a partir de uma string, ou seja, parte de uma palavra, frase ou texto. Esta técnica é muito útil em aplicações PHP que efetuam manipulação de texto. A função substr() possui três parâmetros: substr(string, início, comprimento) Veja um código completo demonstrando seu uso: <html> <head> <title>Estudos PHP</title> </head> <body> <?php $frase = "Gosto muito de programar em PHP."; // vamos obter uma parte dessa frase. $parte = substr($frase, 6, 5); // mostra o resultado echo $frase . "<br>"; echo "Parte obtida: " . $parte; ?> </body> </html> Ao executar este código PHP nós teremos o seguinte resultado: Gosto muito de programar em PHP. Parte obtida: muito |
Delphi ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter um valor inteiro em um caractere usando a função Chr() do DelphiQuantidade de visualizações: 14390 vezes |
Em algumas situações precisamos converter um valor inteiro em um caractere, ou seja, uma letra, símbolo, dígito, etc. Para isso podemos usar a função Chr() do Delphi. Esta função recebe um valor inteiro e retorna seu caractere correspondente de acordo com a tabela ASCII. Vamos ver um exemplo? Eis um trecho de código que declara uma variável do tipo Integer e depois a converte para um caractere: procedure TForm3.Button2Click(Sender: TObject); var valor: Integer; letra: Char; begin // vamos atribuir à variável valor o número 70 valor := 70; // vamos converter este valor para um caractere // o resultado será a letra F letra := Chr(valor); // vamos mostrar o resultado ShowMessage(letra); end; Ao executar este código teremos o valor 70 convertido para a letra "F". Note que também é possível converter um valor inteiro em um caractere usando uma conversão forçada (cast) para o tipo Char. Veja: procedure TForm3.Button2Click(Sender: TObject); var valor: Integer; letra: Char; begin // vamos atribuir à variável valor o número 70 valor := 70; // vamos converter este valor para um caractere // o resultado será a letra F letra := Char(valor); // vamos mostrar o resultado ShowMessage(letra); end; Neste segundo trecho de código nós conseguimos o mesmo resultado do código anterior, mas, sem usar a função Chr(). |
Ruby ::: Dicas & Truques ::: Data e Hora |
Como construir uma data e hora em Ruby usando os métodos mktime() e local() da classe TimeQuantidade de visualizações: 7582 vezes |
Há situações em que precisamos trabalhar com datas e horas no passado ou futuro em Ruby. Para estas situações nós precisamos construir a data ou a data e a hora. Nesta dica mostrarei como usar os métodos mktime() e local() para esta finalidade. Os métodos mktime() e local() são sinônimos e ambos aceitam os seguintes argumentos: # argumentos para mktime Time.mktime(year [, month, day, hour, min, sec, usec) => time #argumentos para local Time.local(year [, month, day, hour, min, sec, usec]) => time Estes métodos criam um novo objeto Time baseado nos parâmetros fornecidos. As unidades de tempo são fornecidas em ordem inversa do mais longo para o mais curto: ano, mês, dia, horas, minutos, segundos e microsegundos. Todos os parâmetros, exceto ano, são opcionais. Quando não fornecidos, estes parâmetros são automaticamente inicializados com seus menores valores possíveis. O parâmetro de microsegundos (usec) pode ser ignorado em muitas arquiteturas. O valor para as horas deve estar na faixa 0..23 (formato 24 horas). Veja um trecho de código no qual usamos os métodos mktime() e local() para construir uma data e uma data e hora: # constrói uma data usando o método mktime # passando o ano, mês e dia hoje = Time.mktime(2008, 11, 22) # exibe o resultado puts "A data é: " + hoje.to_s # constrói uma data e hora usando o método mktime # passando o ano, mês, dia, horas, minutos e segundos hoje = Time.mktime(2008, 11, 22, 20, 25, 10) # exibe o resultado puts "A data e hora é: " + hoje.to_s Ao executar este código Ruby nós teremos o seguinte resultado: A data é: 2008-11-22 00:00:00 -0300 A data e hora é: 2008-11-22 20:25:10 -0300 |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como obter a extensão de um arquivo em PHP usando a função pathinfo()Quantidade de visualizações: 10050 vezes |
Em algumas situações precisamos obter a extensão de um arquivo. Isso pode ser feito por meio do uso da função pathinfo(), que retorna informações sobre um arquivo, incluindo seu caminho. Para obter a extensão, só precisamos fornecer a constante PATHINFO_EXTENSION para o segundo parâmetro da função. Veja o código: <?php // caminho e nome do arquivo que queremos obter a extensão $arquivo = "/home/xxxx/xxxx/foto.jpg"; // obtém a extensão $ext = pathinfo($arquivo, PATHINFO_EXTENSION); // exibe o resultado echo "A extensão do arquivo é: " . $ext; ?> Ao executarmos este código teremos o seguinte resultado: A extensão do arquivo é: jpg |
Java ::: Coleções (Collections) ::: HashMap |
Como retornar a quantidade de mapeamentos (chave-valor) em um HashMap do Java usando o método size()Quantidade de visualizações: 7997 vezes |
Em algumas situações precisamos saber a quantidade de mapeamentos (chave-valor) contidos em um HashMap. Para isso nós podemos usar o método size(). Veja o exemplo:import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos criar uma instância de HashMap HashMap<Integer, String> clientes = new HashMap<Integer, String>(); // vamos adicionar três chaves e seus valores clientes.put(new Integer(1), "Osmar J. Silva"); clientes.put(new Integer(2), "Salvador Miranda de Andrade"); clientes.put(new Integer(3), "Marcos da Costa Santos"); // vamos obter a quantidade de mapeamentos neste HashMap int quant = clientes.size(); // vamos exibir o resultado System.out.println("Este HashMap contém " + quant + " mapeamentos."); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Este HashMap contém 3 mapeamentos. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Como resolver o problema da Torre de Hanói recursivamenteQuantidade de visualizações: 2605 vezes |
Pergunta/Tarefa: Torre de Hanói, ou The Towers of Hanoi, é um "quebra-cabeça" que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três. A solução da Torre de Hanói (The Towers of Hanoi) pode ser feita recursivamente da seguinte forma: O caso base (parada da recursão) é quando n = 1. Se n = 1 nós podemos simplesmente mover o disco de A para B, sem precisar passar pelo pino C. Quando n > 1 nós podemos dividir o problema original em três sub-problemas e resolvê-los sequencialmente. 1) Mova os primeiros n - 1 discos de A para C com a ajuda do pino B; 2) Mova o disco n de A para B; 3) Mova n - 1 discos do pino C para o pino B com a ajuda do pino A. Além de resolver o problema, seu programa deverá informar quantas chamadas recursivas foram feitas. Sua saída deverá ser parecida com: ![]() Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: package arquivodecodigos; import java.util.Scanner; public class Estudos { static int quantChamadasRecursivas = 0; // registra as chamadas recursivas public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos ler a quantidade de discos a serem usados na simulação System.out.print("Informe a quantidade de discos: "); int discos = Integer.parseInt(entrada.nextLine()); // resolve o problema recusivamente System.out.println("\nOs movimentos para resolver o problema foram:\n"); moverDiscos(discos, 'A', 'B', 'C'); System.out.println("\nForam feitas " + quantChamadasRecursivas + " chamadas recursivas"); System.out.println(); } // método recursivo que resolve o problema da Torre de Hanói public static void moverDiscos(int n, char daTorre, char paraTorre, char torreAux) { quantChamadasRecursivas++; // registra mais uma chamada recursiva if(n == 1){ // condição de parada System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + paraTorre); } else{ // faz mais uma chamada recursiva moverDiscos(n - 1, daTorre, torreAux, paraTorre); System.out.println("Movendo o disco " + n + " de " + daTorre + " para " + paraTorre); moverDiscos(n - 1, torreAux, paraTorre, daTorre); } } } |
Você também poderá gostar das dicas e truques de programação abaixo |
AutoCAD VBA - Como criar uma linha no AutoCAD usando Autocad VBA e a função AddLine() do objeto ModelSpace |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |