![]() |
|
|
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. |
||
Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
C++ Windows API - Como ler o conteúdo de um arquivo usando a função ReadFile() da Win32 APIQuantidade de visualizações: 9457 vezes |
|
A função ReadFile() é usada quando queremos ler o conteúdo de um arquivo. A leitura se inicia na posição zero do arquivo e mantém um ponteiro de arquivo, a partir do qual as leituras subsequentes ocorrerão. Esta função pode ser usada para leituras síncronas e assíncronas. Para leituras apenas assíncronas devemos usar ReadFileEx(). Veja seu protótipo na documentação da API do Windows: BOOL WINAPI ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); Antes de vermos um exemplo de como usar a função ReadFile(), vamos dar uma olhada em seus parâmetros: a) HANDLE hFile - Este é o handle para o arquivo a partir do qual queremos ler. Tal handle deve ser criado com o direito de acesso GENERIC_READ. b) LPVOID lpBuffer - Um ponteiro para o buffer que receberá os dados lidos do arquivo. c) DWORD nNumberOfBytesToRead - O número máximo de bytes a serem lidos de cada vez. Geralmente este número está relacionado à quantidade de bytes dos elementos do buffer. d) LPDWORD lpNumberOfBytesRead - Um ponteiro para uma variável que receberá o número de bytes lidos. A função ReadFile() define o valor desta variável como 0 antes de cada leitura e verificação de erros. e) LPOVERLAPPED lpOverlapped - Um ponteiro para um estrutura OVERLAPPED. Esta estrutura é exigida se o handle para o arquivo for obtido usando FILE_FLAG_OVERLAPPED para o parâmetro dwFlagsAndAttributes da função CreateFile(). Geralmente usamos NULL para este parâmetro. A função ReadFile() retorna quando um erro ocorre ou a quantidade de bytes solicitados é alcançada. Veja um trecho de código no qual lemos o conteúdo de um arquivo chamado testes.txt:
#include <cstdlib>
#include <iostream>
#include <windows.h>
#define TAM_BUFFER 256 // tamanho do buffer em bytes
using namespace std;
int main(int argc, char *argv[]){
// nome do arquivo
CHAR arquivo[] = "C:\\testes.txt";
CHAR buffer[TAM_BUFFER]; // buffer para o conteúdo do arquivo
DWORD nIn; // bytes lidos
// vamos abrir o arquivo para leitura.
// se o arquivo não existir uma mensagem de erro é exibida.
HANDLE hArquivo = CreateFile(arquivo, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hArquivo == INVALID_HANDLE_VALUE){
cout << "Erro ao abrir o arquivo: " << GetLastError() << endl;
}
else{
// arquivo aberto com sucesso. Vamos ler
while(ReadFile(hArquivo, buffer, TAM_BUFFER, &nIn, NULL) && nIn > 0){
cout << "Efetuei a leitura de " << nIn << " bytes." << endl;
// vamos adicionar o caractere de final de linha
// caso os bytes lidos não preencham todo o buffer
buffer[nIn] = 0;
cout << "Conteudo da leitura: " << buffer << endl;
}
}
// vamos fechar o handle
CloseHandle(hArquivo);
system("PAUSE");
return EXIT_SUCCESS;
}
|
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como verificar a existência de um diretório usando a função DirectoryExists() do DelphiQuantidade de visualizações: 13612 vezes |
Em algumas situações precisamos saber se um diretório já existe, talvez para evitar que nosso código tente criar um diretório com o mesmo caminho e nome. Em Delphi isso pode ser feito com o auxílio da função DirectoryExists() da unit SysUtils. Esta função recebe uma string contendo o nome do diretório a ser pesquisado e retorna true se o diretório existir e false em caso contrário. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
diretorio: string;
begin
// diretório que queremos verificar a existência
diretorio := 'C:\arquivo de codigos';
// vamos verificar se o diretório existe
if DirectoryExists(diretorio) then
ShowMessage('O diretório existe')
else
ShowMessage('O diretório NÃO existe');
end;
Note que a unit FileCtrl também contém uma função chamada DirectoryExists(). Porém, esta função foi considerada ultrapassada. Dê preferência àquela da unit SysUtils. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como obter a quantidade de registros em um TClientDataSet do Delphi usando a propriedade RecordCountQuantidade de visualizações: 12076 vezes |
|
Em algumas situações precisamos saber a quantidade de registros atualmente armazenados em um componente TClientDataSet. Para isso podemos usar a propriedade RecordCount, implementada originalmente na classe TDataSet e reimplementada na classe TClientDataSet. Veja um trecho de código no qual usamos o evento OnClick de um botão para exibir a quantidade de registros atualmento no TClientDataSet:
procedure TForm3.Button3Click(Sender: TObject);
var
qRegistros: Integer;
begin
// obtém a quantidade de registros no TClientDataSet
qRegistros := ClientDataSet1.RecordCount;
// mostra o resultado
ShowMessage('O ClientDataSet possui ' + IntToStr(qRegistros)
+ ' registros.');
end;
Ao executar o código e clicar no botão você verá uma mensagem parecida com: "O ClientDataSet possui 20 registros.". Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Classes e Componentes ::: JList |
Java Swing para iniciantes - Como adicionar itens a uma JList em tempo de execuçãoQuantidade de visualizações: 23767 vezes |
|
Este exemplo mostra como inserir itens em uma JList do Java Swing em tempo de execução. O valor a ser inserido é informado em um JTextField. Veja que estamos usando a classe DefaultListModel e seu método addElement() para adicionar os novos itens. Veja a janela JFrame e os componentes usados para exemplificar esta funcionalidade: ![]() E agora veja o código Java Swing completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JList lista;
JTextField campo;
public Estudos() {
super("A classe JList");
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT));
// Cria um novo DefaultListModel
DefaultListModel modelo = new DefaultListModel();
// Cria a JList
lista = new JList();
// Atribui o DefaultListModel à JList
lista.setModel(modelo);
// Um botão que permite adicionar itens na JList
JButton btn = new JButton("Adicionar na JList");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
String valor = campo.getText();
if(valor.length() != 0){
((DefaultListModel)(lista.getModel()))
.addElement(valor);
campo.setText("");
campo.requestFocus();
}
}
}
);
// Adiciona a lista à janela
c.add(new JScrollPane(lista));
// Cria um JTextField e o adiciona à janela
campo = new JTextField(10);
c.add(campo);
// Adiciona o botão à janela
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como testar a existência de um caractere em uma string e retornar sua posição em Java usando o método indexOf() da classe StringQuantidade de visualizações: 3 vezes |
|
Nesta dica eu mostro como podemos usar o método indexOf() da classe String para pesquisar um caractere em uma palavra, frase ou texto e retornar a sua posição, ou seja, o seu índice dentro da string. Se o caractere for encontrado, sua posição é retornada. Caso contrário o valor -1 é retornado. Veja o código completo para o exemplo:
package estudos;
public class Estudos{
public static void main(String[] args){
// vamos criar uma string
String frase = "Gosto de programar em Java";
// vamos testas se a string contém a letra "k"
int pos = frase.indexOf('k');
if(pos < 0){
System.out.println("A string não contém a letra k");
}
else{
System.out.println("A letra k foi encontrada na posicao: " + pos);
}
// fecha o programa
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: A string não contém a letra k |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





