Você está aqui: C# ::: Windows Forms ::: WebBrowser

Usando o método GetElementsByTagName() da classe HtmlDocument para retornar uma coleção de elementos HTML em um controle WebBrowser

Quantidade de visualizações: 10261 vezes
O método GetElementsByTagName() da classe HtmlDocument pode ser usado quando queremos retornar todos os elementos de um determinada tag em uma página HTML carregada em um controle WebBrowser. Este método recebe uma string especificando a tag desejada e retorna um objeto da classe HtmlElementCollection contendo todos os elementos cujas tags sejam iguais à tag pesquisada. Vamos ver um exemplo? Comece criando o seguinte documento HTML:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <title>Manipulando elementos HTML usando C#</title>
</head>
<body>

<p>Sou o primeiro parágrafo.</p>

<p>Sou o segundo parágrafo.</p>

<p>Sou o terceiro parágrafo.</p>

</body>
</html>

Nesta página HTML nós temos três parágrafos. Veja o trecho de código C# que carrega esta página em um controle WebBrowser e usa o método GetElementsByTagName() para retornar todos os parágrafos. Em seguida nós varremos os elementos da coleção HtmlElementCollection e exibimos seus conteúdos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos carregar o documento HTML a partir de um diretório local
  webBrowser1.Navigate(new Uri(@"c:arquivo de codigos	este.html"));
}

private void button2_Click(object sender, EventArgs e){
  // vamos obter um HtmlDocument representando o documento HTML
  HtmlDocument doc = webBrowser1.Document;

  // vamos obter todos os parágrafos no documento
  HtmlElementCollection elems = doc.GetElementsByTagName("p");

  // vamos verificar quantos paragrafos foram encontrados
  if(elems.Count == 0){
    MessageBox.Show("Não encontrei nenhum parágrafo no página HTML");    
  }
  else{
    MessageBox.Show("Encontrei " + elems.Count + " parágrafos.");    
  }

  // vamos exibir o conteúdo de cada parágrafo
  for(int i = 0; i < elems.Count; i++){
    HtmlElement p = elems[i];
    MessageBox.Show("O conteúdo deste parágrafo é: " + 
      p.GetAttribute("innerHTML"));
  }
}

Note que o nome da tag a ser fornecida para o método GetElementsByTagName() pode ser em letras maiúsculas ou minúsculas. Assim, "p" e "P" teriam o mesmo resultado.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como usar nil para testar ou indicar que um ponteiro Delphi não referencia nenhuma posição de memória

Quantidade de visualizações: 14783 vezes
O propósito dos ponteiros é nos permitir acessar e manipular os valores de outras variáveis. Isso é feito acessando-se diretamente o endereço de memória destas variáveis. Porém, há situações nas quais queremos testar se um determinado ponteiro está realmente apontando para um local na memória. Veja o seguinte trecho de código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  pvalor: ^integer;
begin
  // vamos exibir o valor da variável referenciada pelo
  // ponteiro pvalor
  ShowMessage(IntToStr(pvalor^));
end;

Ao executarmos este código nós teremos um valor aleatório sendo exibido (e um warning do tipo W1036 Variable 'pvalor' might not have been initialized. Isso acontece porque criamos um ponteiro para um Integer mas não indicamos o endereço da variável para a qual ele aponta, ou seja, até o momento este ponteiro é nulo (não aponta para nenhuma posição de memória). Mova a declaração do ponteiro para a seção interface e verá que código compilará mas teremos uma exceção do tipo EAccessViolation (Exception class EAccessViolation with message 'Access violation at address ... in module ...). Clássico erro de lógica. Estamos tentando acessar dados não existentes na memória.

Esta situação pode ser evitada testando se o ponteiro ainda é nulo antes de tentarmos desreferenciá-lo. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos exibir o valor da variável referenciada pelo
  // ponteiro pvalor
  if pvalor = nil then
    ShowMessage('O ponteiro ainda é nulo.')
  else
    ShowMessage(IntToStr(pvalor^));
end;

Note que movi a declaração do ponteiro para a secão interface, de forma a torná-la global. Isso evita que o ponteiro seja automaticamente inicializado (o que sempre acontece com as variáveis locais). Ao executar o código novamente você verá a mensagem indicando que o ponteiro ainda é nulo.

Podemos também usar nil para, explicitamente, marcar um ponteiro como nulo, ou seja, definir que o ponteiro não aponta para nenhum local na memória. Comece declarando as variáveis abaixo na seção interface do formulário:

valor: Integer;
pvalor: ^Integer;

Em seguida coloque o código abaixo no evento Click de um botão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos atribuir um valor à variável valor
  valor := 14;

  // vamos "apontar" nosso ponteiro para o local de
  // memória da variável valor
  pvalor := @valor;

  // vamos exibir o valor da variável apontada por pvalor
  ShowMessage(IntToStr(pvalor^));

  // vamos marcar pvalor como nulo
  pvalor := nil;

  // vamos causar um EAccessViolation já que pvalor
  // não aponta para nenhum local na memória agora
  ShowMessage(IntToStr(pvalor^));
end;

Sempre que marcamos um ponteiro como nil, a memória até então ocupada por ele é liberada para uso por parte do sistema operacional ou demais programas. Este procedimento ajuda a evitar os vazamentos de memória (memory leak) tão frequentes em códigos que trabalham com memória alocada dinamicamente.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico

Exercícios Resolvidos de Python - Como calcular salário líquido em Python - Calculando o salário líquido de um professor

Quantidade de visualizações: 812 vezes
Pergunta/Tarefa:

Escreva um programa Python que calcule o salário líquido de um professor. Seu programa deverá solicitar que o usuário informe o valor da hora aula (como float), o número de horas trabalhadas no mês (como inteiro) e o percentual de desconto do INSS (como float). Em seguida mostre o salário líquido, formatado de acordo com a moeda brasileira em vigor (na resolução eu usei o Real). Dica: Use locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8').

Sua saída deverá ser parecida com:

Informe o valor da hora aula: 28
Informe o número de horas trabalhadas no mês: 12
Informe o percentual de desconto do INSS: 8
Salário Bruto: R$ 336,00
Total de Descontos: R$ 26,88
Salário Líquido: R$ 309,12
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import locale

# função principal do programa
def main():
  locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')
  
  # vamos ler o valor do hora aula
  valor_hora_aula = float(input("Informe o valor da hora aula: "))
    
  # vamos ler o número de horas trabalhadas no mês
  horas_trabalhadas = int(input("Informe o número de horas trabalhadas no mês: "))
    
  # vamos ler o percentual de desconto do INSS
  percentual_desconto_inss = float(input("Percentual de desconto do INSS: "))
    
  # vamos calcular o salário bruto
  salario_bruto = valor_hora_aula * horas_trabalhadas
    
  # agora calculamos o total do desconto
  total_desconto = (percentual_desconto_inss / 100) * salario_bruto
    
  # finalmente calculamos o salário líquido
  salario_liquido = salario_bruto - total_desconto
    
  # mostramos o resultado
  print("Salário Bruto: R$ {0}".format(locale.currency(salario_bruto, 
    grouping=True, symbol=None)))
  print("Total de Descontos: R$ {0}".format(locale.currency(total_desconto, 
    grouping=True, symbol=None)))
  print("Salário Líquido: R$ {0}".format(locale.currency(salario_liquido, 
    grouping=True, symbol=None)))
  
if __name__== "__main__":
  main()



VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço Do...Until...Loop do VB.NET

Quantidade de visualizações: 9976 vezes
O laço Do...While...Loop é usado quando queremos testar uma condição e, executar um bloco de código repetidamente ENQUANTO esta condição for verdadeira. O laço Do...Until...Loop, por sua vez, executa uma bloco de códigos repetidamente ATÉ que uma condição se torne verdadeira.

Veja um exemplo de laço Do...Until...Loop que nos permite exibir os números de 0 a 10:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Dim numero As Integer = 0

Do Until numero > 10
  Console.WriteLine(numero)
  numero += 1
Loop

Veja uma nova versão deste código, desta vez contando de 10 a 0:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Dim numero As Integer = 10

Do Until numero < 0
  Console.WriteLine(numero)
  numero -= 1
Loop

Aqui nós estamos novamente avaliando uma condição, ou seja, se o resultado da condição for True, a execução do laço pára. Se for False, o laço continua. Veja um exemplo no qual a condição booleana está bem explícita:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Dim pode As Boolean = True
Dim valor As Integer = 1

Do Until pode = False
  Console.WriteLine(valor)
  valor += 1

  If valor > 20 Then
    pode = False
  End If
Loop



C++ ::: Dicas & Truques ::: Strings e Caracteres

Como embaralhar os caracteres de uma string em C++ usando a função random_shuffle()

Quantidade de visualizações: 12578 vezes
Em algumas situações, tais como o desenvolvimento de um gerador de senhas aleatórias, pode ser necessário embaralharmos as letras de uma palavra. Em C++ isso pode ser feito por meio do uso da função random_shuffle() da STL (Standard Template Library). Não se esqueça de efetuar uma chamada a srand() antes do código que embaralha os caracteres da string.

Veja o código C++ completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>
#include <algorithm>
#include <time.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos iniciar o gerador de números
  // aleatórios
  srand(time(NULL));

  // vamos criar uma string
  string palavra = "JAVASCRIPT";
  cout << "Palavra original: " << palavra << endl;
  
  // vamos embaralhar as palavras da string
  random_shuffle(palavra.begin(), palavra.end());

  // exibe o resultado
  cout << "Palavra com caracteres embaralhados: " << palavra << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Palavra original: JAVASCRIPT
Palavra com caracteres embaralhados: RPSAITCVAJ


Java ::: Pacote java.lang ::: Integer

Java Básico - Como usar a constante SIZE da classe Integer para obter a quantidade de bits necessária para armazenar um int

Quantidade de visualizações: 6578 vezes
Em algumas situações gostaríamos de obter a quantidade de bits necessária para armazenar um valor do tipo int (inteiro). Para isso podemos usar a constante SIZE da classe Integer (uma classe wrapper que encapsula o valor primitivo int). Veja como isso pode ser feito:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos {
  public static void main(String[] args) {
    // vamos obter a quantidade de bits necessária para representar um int
    int quantBits = Integer.SIZE;
    
    // o resultado
    System.out.println("Um int ocupa " + quantBits + " bits, ou seja, " +
       (quantBits / 8) + " bytes");    
  }
}

Ao executarmos este código o resultado será:

Um int ocupa 32 bits, ou seja, 4 bytes.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

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



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