![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa 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 PredicateQuantidade 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 DelphiQuantidade 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 JavaQuantidade 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 |
|
VB.NET - Como adicionar horas à data e hora atual em VB.NET usando a função AddHours() da classe DateTime JavaScript - Como converter uma string para letras minúsculas em JavaScript usando a função toLowerCase() do objeto String Delphi - Como calcular MDC em Delphi |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como usar o Delphi para verificar se um determinado processo do Windows está sendo executado JavaScript - JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript Java - Como calcular a transposta de uma matriz em Java - Java para Geometria Analítica e Álgebra Linear wxWidgets - Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017 |
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 |




