Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes.

C# ::: Coleções (Collections) ::: List<T>

Como pesquisar um elemento em uma lista do C# usando a função Find() e um Predicate

Quantidade de visualizações: 15708 vezes
Em algumas situações gostaríamos de pesquisar e retornar o primeiro elemento de uma List<T> que obedece a algum critério de busca. Assim, poderíamos, por exemplo, pesquisar um nome que começa com uma determinada palavra ou um preço de produto maior ou igual a um determinado valor.

Para tais situações podemos usar o método Find(). Este método possui a seguinte assinatura:

public T Find(
  Predicate<T> match
)

Veja que o método pede um delegate do tipo Predicate<T> que define as condições para a pesquisa do elemento. Se o elemento for encontrado, este é retornado. Caso contrário, o valor padrão para T é retornado (null para referências).

Veja um trecho de código no qual eu mostro como usar o método Find() em combinação com um método personalizado que permite usar um delegate anônimo. Desta forma conseguimos fornecer, em tempo de execução, o argumento para o parâmetro match do Predicate:

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<string> nomes = new List<string>();

  // vamos inserir quatro valores na lista
  nomes.Add("Osmar J. Silva");
  nomes.Add("Salvador Miranda de Andrade");
  nomes.Add("Dyego Fernandes de Souza");
  nomes.Add("Marcos de Paula Rocha");
  
  // vamos pesquisar um valor na lista usando um método personalizado
  // Neste exemplo vamos retornar o primeiro nome que contenha a palavra
  // "Dyego"
  string nome = encontrar(nomes, "Dyego");

  // vamos verificar se o nome foi encontrado
  if(nome != null){
    // foi encontrado....vamos retornar o resultado
    Console.WriteLine(nome);
  }
  else{
    Console.WriteLine("Nenhum nome encontrado.");
  }

  // vamos pausar a execução
  Console.Write("\n\nPressione qualquer tecla para continuar...");
  Console.ReadKey();
}

// método auxiliar que permite encontrar um valor na lista usando
// o método Find() da classe List<T> e um Predicate
static string encontrar(List<string> lista, string texto){
  string encontrado = null;

  // vamos pesquisar o valor na lista usando seu método Find()
  // Aqui o primeiro nome que passar no critério de busca será retornado
  encontrado = lista.Find(delegate(string valor){
      return valor.Contains(texto);
  });

  return encontrado;
}

O método Find() executa uma busca linear. Assim, este método é uma operação O(n), onde n é a quantidade de elementos na lista.


Delphi ::: VCL - Visual Component Library ::: TListBox

Como pesquisar e selecionar um item em uma ListBox do Delphi

Quantidade de visualizações: 17298 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.


C# ::: C# + MySQL ::: MySqlCommand

Como inserir dados em uma tabela MySQL usando INSERT INTO e consultas parametrizadas no C#

Quantidade de visualizações: 1619 vezes
As consultas parametrizadas podem ser definidas para o método ExecuteNonQuery() da classe MySqlCommand por meio dos métodos Add() e AddWithValue() do objeto Parameters. Neste exemplo eu mostrarei como usar AddWithValue(), já que ele nos permite informar tanto o parâmetro quanto o seu valor.

Observe que a tabela usada nesta dica possui os campos id, titulo, autor, paginas e data_cadastro. O campo id é auto-incremento (recebendo o valor NULL) e o campo data_cadastro é do tipo DATETIME (e recebe o valor NOW()).

Veja o código completo para o exemplo (incluindo a conexão C# + MySQL usando a classe MySqlConnection):

using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace EstudosMySQL {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e) {
      // objeto de conexão
      MySqlConnection conn = null;

      // string de conexão
      string connStr = "server=localhost;user id=root; " +
        "password=osmar1234; database=estudos; pooling=false";

      try {
        conn = new MySqlConnection(connStr);
        conn.Open();

        if (conn.State == ConnectionState.Open) {
          // primeiro criamos um novo objeto MySqlCommand
          MySqlCommand comando = new MySqlCommand();
          // definimos a conexão para este comando
          comando.Connection = conn;

          // definimos o comando SQL a ser executado usando parâmetros
          comando.CommandText = "INSERT INTO livros (id, titulo, autor, paginas, data_cadastro) " +
            "VALUES(NULL, @titulo, @autor, @paginas, NOW())";

          // agora definimos os valores para os parâmetros
          comando.Parameters.AddWithValue("@titulo", "APLICAÇÕES PHP REST");
          comando.Parameters.AddWithValue("@autor", "CARLOS JUNIOR SOUZA");
          comando.Parameters.AddWithValue("@paginas", 280);
          comando.Prepare();

          // e executamos o comando SQL
          int res = comando.ExecuteNonQuery();
          if (res > 0) {
            MessageBox.Show("Operação realizada com sucesso. " + res + " linhas afetadas.");
          }
          else {
            MessageBox.Show("Deve ter acontecido alguma coisa. " + res + " linhas afetadas.");
          }
        }
      }
      catch (MySqlException ex) {
        MessageBox.Show("Erro: " +
          ex.Message);
      }
    }
  }
}



Java ::: Dicas & Truques ::: Threads

Java Threads - Como interromper a execução de uma thread em suas aplicações Java

Quantidade de visualizações: 15988 vezes
A classe Thread fornece um método chamado interrupt() que serve para interrompermos a execução de uma determinada thread. Os métodos sleep() e yield() transferem a thread sendo executada no momento do estado "executando" para o estado "pronta". O método interrupt(), por sua vez, faz com que uma thread vá para o estado "finalizada", ou seja, ela não voltará mais a ser executada.

O problema é que, nem sempre, o método interrupt() parece surtir o efeito desejado, ou seja, fazer com que a thread pare de executar imediatamente. Por esta razão, a forma mais fácil de "matar" uma thread é forçar a saída de seu método run(). Veja um exemplo:

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);

      if((i >= 3) && (nome.equals("Thread 1"))){
        try{
          System.out.println(nome + " foi eliminada");
          return; // interrompe a execução do método run()
        }
        catch(SecurityException e){
          System.out.println(e.getMessage());
        }      
      }
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.start();    

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.start();
  }
}

Ao usar a instrução return nós forçamos a saída do método run() e consequentemente, o fim da tarefa sendo realizada pela thread.


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 12 usuários muito felizes estudando em nosso site.