Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Java ::: Dicas & Truques ::: Matemática e Estatística

Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem Java

Quantidade de visualizações: 10459 vezes
Nesta dica eu mostrarei como podemos tirar proveito do método parseInt() da classe Integer do Java para converter um valor octal para decimal. Para isso nós só precisamos fornecer o valor 8 como segundo argumento para esta função.

Veja o código completo:

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    String octal = "10";
     
    // efetua a conversão de octal para
    // decimal
    int decimal = Integer.parseInt(octal, 8);
 
    // exibe o resultado
    System.out.println("O octal " + octal + " em decimal é " +
      decimal);
 
    System.exit(0);
  }
}

Ao executarmos este código nós teremos o seguinte resultado:

O octal 10 em decimal é 8


PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como testar se um diretório existe em PHP usando a função file_exists()

Quantidade de visualizações: 19232 vezes
Em algumas situações nós precisamos verificar se um determinado diretório existe no sistema antes de efetuarmos alguma operação. Para isso nós podemos usar a função file_exists(). Esta função retorna um valor true se o diretório existir e false em caso contrário.

Veja um código PHP completo demonstrando o seu uso:

<?php
  $diretorio = "arquivo/imagens";

  if(file_exists($diretorio)){
    echo "O diretório já existe.";
  }
  else{
    echo "O diretório não existe ainda.";
  }
?>



Java ::: Pacote java.awt.event ::: KeyEvent

Java Swing - Como usar o método getKeyCode() da classe KeyEvent para detectar as teclas de Espaço, Enter ou Esc

Quantidade de visualizações: 6475 vezes
Em algumas situações nós precisamos detectar o pressionamento das teclas de Espaço, Enter ou Esc. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_SPACE (espaço), KeyEvent.VK_ENTER (Enter) ou KeyEvent.VK_ESCAPE (Esc).

Veja um trecho de código no qual testamos se alguma destas três teclas foi pressionada:

package estudos;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Janela extends JFrame implements KeyListener{
  public Janela(){
    super("Eventos do Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
    
    // vamos adicionar o objeto listener 
    addKeyListener(this);

    setSize(350, 250);
    setVisible(true);
  }
    
  @Override
  public void keyPressed(KeyEvent e){
    // a tecla Space foi pressionada?
    if(e.getKeyCode() == KeyEvent.VK_SPACE){
      JOptionPane.showMessageDialog(null, "A tecla de espaço foi pressionada");
    }
    // a tecla Enter foi pressionada?
    else if(e.getKeyCode() == KeyEvent.VK_ENTER){
      JOptionPane.showMessageDialog(null, "A tecla Enter foi pressionada");
    }
    // a tecla Esc foi pressionada?
    else if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
      JOptionPane.showMessageDialog(null, "A tecla Esc foi pressionada");
    }
    else{
      JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada");  
    }
  }
    
  @Override
  public void keyReleased(KeyEvent e){
    // sem implementação
  }

  @Override
  public void keyTyped(KeyEvent e){
    // sem implementação
  }   
  
  public static void main(String args[]){
    Janela j = new Janela();
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

É importante observar que as teclas Space, Enter e Esc podem ser detectadas somente nos eventos keyPressed e keyReleased.


QGIS ::: PyQGIS API ::: Shapefiles, Camadas Vetoriais, Dados Vetoriais

Como exibir todos os atributos das feições de uma camada vetorial no QGIS usando getFeatures() e attributes() da PyQGIS API

Quantidade de visualizações: 6293 vezes
Nesta dica mostrarei como podemos acessar todos os atributos das feições (features) de uma camada vetorial no QGIS usando getFeatures() e attributes() do objeto QgsVectorLayer da PyQGIS API.

Depois de carregar o shapefile contendo todos os municípios do Estado de Goiás, usei a getFeatures() para retornar um iterador QgsFeatureIterator que nos permite acessar as features individuais da camada.

Então, de posse das feições individuais, nós usamos a função attributes() para retornar o QgsFeature correspondente e exibir seu conteúdo.

Veja o código PyQGIS completo para o exemplo:

# vamos criar um novo objeto QgsVectorLayer com o local do nosso shapefile
camada = QgsVectorLayer("C:\\GO\\GO_Municipios_2022.shp",
  "Municípios Estado de Goiás", "ogr")

# vamos testar se a camada é válida  
if not camada.isValid():
  print("Não foi possível carregar a camada %s" % camada.name())
else:
  # vamos adicionar a camada à relação de camadas  
  QgsProject.instance().addMapLayer(camada)
  
  # vamos obter as feições
  feicoes = camada.getFeatures()
  
  # agora percorremos as feições e obtemos os seus
  # atributos, todos de uma só vez ou individual,
  # como mostro em outras dicas
  for f in feicoes:
    # vamos obter os atributos desta feição
    atributos = f.attributes()
    # e mostramos o resultado
    print(atributos)

Ao rodar esse código PyQGIS no QGIS nós teremos o seguinte resultado:

['5200050', 'Abadia de Goiás', 'GO', 143.357]
['5200100', 'Abadiânia', 'GO', 1044.555]
['5200134', 'Acreúna', 'GO', 1566.742]
['5200159', 'Adelândia', 'GO', 115.385]
['5200175', 'Água Fria de Goiás', 'GO', 2023.636]
['5200209', 'Água Limpa', 'GO', 458.836]
['5200258', 'Águas Lindas de Goiás', 'GO', 191.817]
['5200308', 'Alexânia', 'GO', 846.876]
['5200506', 'Aloândia', 'GO', 102.094]
['5200555', 'Alto Horizonte', 'GO', 500.342]
['5200605', 'Alto Paraíso de Goiás', 'GO', 2594.998]
['5200803', 'Alvorada do Norte', 'GO', 1268.347]
['5200829', 'Amaralina', 'GO', 1343.742]
['5200852', 'Americano do Brasil', 'GO', 133.834]
['5200902', 'Amorinópolis', 'GO', 406.93]
['5201108', 'Anápolis', 'GO', 935.672]
['5201207', 'Anhanguera', 'GO', 55.569]
['5201306', 'Anicuns', 'GO', 976.038]
['5201405', 'Aparecida de Goiânia', 'GO', 279.954]
['5201454', 'Aparecida do Rio Doce', 'GO', 603.254]
['5201504', 'Aporé', 'GO', 2899.237]
['5201603', 'Araçu', 'GO', 149.776]
['5201702', 'Aragarças', 'GO', 661.677]
['5201801', 'Aragoiânia', 'GO', 218.125]
['5202155', 'Araguapaz', 'GO', 2188.1]
['5202353', 'Arenópolis', 'GO', 1075.535]
['5202502', 'Aruanã', 'GO', 3054.773]
['5202601', 'Aurilândia', 'GO', 565.514]
['5202809', 'Avelinópolis', 'GO', 170.228]
['5203104', 'Baliza', 'GO', 1780.173]
['5203203', 'Barro Alto', 'GO', 1080.268]
['5203302', 'Bela Vista de Goiás', 'GO', 1274.034]
['5203401', 'Bom Jardim de Goiás', 'GO', 1901.137]
['5203500', 'Bom Jesus de Goiás', 'GO', 1405.605]
['5203559', 'Bonfinópolis', 'GO', 121.915]
['5203575', 'Bonópolis', 'GO', 1635.319]
['5203609', 'Brazabrantes', 'GO', 125.326]
['5203807', 'Britânia', 'GO', 1458.459]
['5203906', 'Buriti Alegre', 'GO', 901.932]
['5203939', 'Buriti de Goiás', 'GO', 202.576]
['5203962', 'Buritinópolis', 'GO', 246.075]
['5204003', 'Cabeceiras', 'GO', 1126.434]
['5204102', 'Cachoeira Alta', 'GO', 1657.226]
['5204201', 'Cachoeira de Goiás', 'GO', 424.49]
['5204250', 'Cachoeira Dourada', 'GO', 528.281]
['5204300', 'Caçu', 'GO', 2254.34]
['5204409', 'Caiapônia', 'GO', 8627.961]
['5204508', 'Caldas Novas', 'GO', 1608.523]
['5204557', 'Caldazinha', 'GO', 251.72]
['5204607', 'Campestre de Goiás', 'GO', 272.734]
['5204656', 'Campinaçu', 'GO', 1978.386]
['5204706', 'Campinorte', 'GO', 1064.541]
['5204805', 'Campo Alegre de Goiás', 'GO', 2450.111]
['5204854', 'Campo Limpo de Goiás', 'GO', 156.113]
['5204904', 'Campos Belos', 'GO', 735.126]
['5204953', 'Campos Verdes', 'GO', 443.125]
['5205000', 'Carmo do Rio Verde', 'GO', 419.821]
['5205059', 'Castelândia', 'GO', 299.228]
['5205109', 'Catalão', 'GO', 3826.37]
['5205208', 'Caturaí', 'GO', 205.065]
['5205307', 'Cavalcante', 'GO', 6948.78]
['5205406', 'Ceres', 'GO', 213.07]
['5205455', 'Cezarina', 'GO', 417.08]
['5205471', 'Chapadão do Céu', 'GO', 2184.076]
['5205497', 'Cidade Ocidental', 'GO', 389.984]
['5205513', 'Cocalzinho de Goiás', 'GO', 1785.339]
['5205521', 'Colinas do Sul', 'GO', 1707.519]
['5205703', 'Córrego do Ouro', 'GO', 458.077]
['5205802', 'Corumbá de Goiás', 'GO', 1064.833]
['5205901', 'Corumbaíba', 'GO', 1864.277]
['5206206', 'Cristalina', 'GO', 6153.921]
['5206305', 'Cristianópolis', 'GO', 221.624]
['5206404', 'Crixás', 'GO', 4673.039]
['5206503', 'Cromínia', 'GO', 364.918]
['5206602', 'Cumari', 'GO', 568.365]
['5206701', 'Damianópolis', 'GO', 417.625]
['5206800', 'Damolândia', 'GO', 86.057]
['5206909', 'Davinópolis', 'GO', 482.857]
['5207105', 'Diorama', 'GO', 685.382]
['5207253', 'Doverlândia', 'GO', 3227.558]
['5207352', 'Edealina', 'GO', 598.218]
['5207402', 'Edéia', 'GO', 1469.099]
['5207501', 'Estrela do Norte', 'GO', 301.139]
['5207535', 'Faina', 'GO', 1949.685]
['5207600', 'Fazenda Nova', 'GO', 1279.107]
['5207808', 'Firminópolis', 'GO', 422.34]
['5207907', 'Flores de Goiás', 'GO', 3695.106]
['5208004', 'Formosa', 'GO', 5804.292]
['5208103', 'Formoso', 'GO', 843.42]
['5208152', 'Gameleira de Goiás', 'GO', 588.328]
['5208301', 'Divinópolis de Goiás', 'GO', 828.874]
['5208400', 'Goianápolis', 'GO', 166.642]
['5208509', 'Goiandira', 'GO', 569.917]
['5208608', 'Goianésia', 'GO', 1547.319]
['5208707', 'Goiânia', 'GO', 729.296]
['5208806', 'Goianira', 'GO', 213.772]
['5208905', 'Goiás', 'GO', 3108.423]
['5209101', 'Goiatuba', 'GO', 2479.591]
['5209150', 'Gouvelândia', 'GO', 827.373]
['5209200', 'Guapó', 'GO', 514.178]
['5209291', 'Guaraíta', 'GO', 205.533]
['5209408', 'Guarani de Goiás', 'GO', 1221.054]
['5209457', 'Guarinos', 'GO', 593.188]
['5209606', 'Heitoraí', 'GO', 228.615]
['5209705', 'Hidrolândia', 'GO', 952.122]
['5209804', 'Hidrolina', 'GO', 583.756]
['5209903', 'Iaciara', 'GO', 1547.183]
['5209937', 'Inaciolândia', 'GO', 689.201]
['5209952', 'Indiara', 'GO', 955.419]
['5210000', 'Inhumas', 'GO', 614.887]
['5210109', 'Ipameri', 'GO', 4382.863]
['5210158', 'Ipiranga de Goiás', 'GO', 244.209]
['5210208', 'Iporá', 'GO', 1027.249]
['5210307', 'Israelândia', 'GO', 579.19]
['5210406', 'Itaberaí', 'GO', 1461.916]
['5210562', 'Itaguari', 'GO', 142.652]
['5210604', 'Itaguaru', 'GO', 241.029]
['5210802', 'Itajá', 'GO', 2082.736]
['5210901', 'Itapaci', 'GO', 952.998]
['5211008', 'Itapirapuã', 'GO', 2047.874]
['5211206', 'Itapuranga', 'GO', 1281.404]
['5211305', 'Itarumã', 'GO', 3437.367]
['5211404', 'Itauçu', 'GO', 383.066]
['5211503', 'Itumbiara', 'GO', 2447.014]
['5211602', 'Ivolândia', 'GO', 1260.841]
['5211701', 'Jandaia', 'GO', 863.087]
['5211800', 'Jaraguá', 'GO', 1848.947]
['5211909', 'Jataí', 'GO', 7178.792]
['5212006', 'Jaupaci', 'GO', 528.783]
['5212055', 'Jesúpolis', 'GO', 115.211]
['5212105', 'Joviânia', 'GO', 446.258]
['5212204', 'Jussara', 'GO', 4092.34]
['5212253', 'Lagoa Santa', 'GO', 463.289]
['5212303', 'Leopoldo de Bulhões', 'GO', 476.137]
['5212501', 'Luziânia', 'GO', 3962.107]
['5212600', 'Mairipotaba', 'GO', 468.029]
['5212709', 'Mambaí', 'GO', 858.27]
['5212808', 'Mara Rosa', 'GO', 1695.463]
['5212907', 'Marzagão', 'GO', 225.518]
['5212956', 'Matrinchã', 'GO', 1150.503]
['5213004', 'Maurilândia', 'GO', 389.959]
['5213053', 'Mimoso de Goiás', 'GO', 1380.701]
['5213087', 'Minaçu', 'GO', 2854.137]
['5213103', 'Mineiros', 'GO', 9042.844]
['5213400', 'Moiporá', 'GO', 452.314]
['5213509', 'Monte Alegre de Goiás', 'GO', 3119.86]
['5213707', 'Montes Claros de Goiás', 'GO', 2900.397]
['5213756', 'Montividiu', 'GO', 1869.581]
['5213772', 'Montividiu do Norte', 'GO', 1337.232]
['5213806', 'Morrinhos', 'GO', 2846.299]
['5213855', 'Morro Agudo de Goiás', 'GO', 282.333]
['5213905', 'Mossâmedes', 'GO', 684.882]
['5214002', 'Mozarlândia', 'GO', 1738.516]
['5214051', 'Mundo Novo', 'GO', 2141.534]
['5214101', 'Mutunópolis', 'GO', 955.069]
['5214408', 'Nazário', 'GO', 281.147]
['5214507', 'Nerópolis', 'GO', 204.713]
['5214606', 'Niquelândia', 'GO', 9846.293]
['5214705', 'Nova América', 'GO', 209.432]
['5214804', 'Nova Aurora', 'GO', 307.335]
['5214838', 'Nova Crixás', 'GO', 7308.681]
['5214861', 'Nova Glória', 'GO', 411.753]
['5214879', 'Nova Iguaçu de Goiás', 'GO', 625.625]
['5214903', 'Nova Roma', 'GO', 2136.725]
['5215009', 'Nova Veneza', 'GO', 122.354]
['5215207', 'Novo Brasil', 'GO', 649.349]
['5215231', 'Novo Gama', 'GO', 192.285]
['5215256', 'Novo Planalto', 'GO', 1254.491]
['5215306', 'Orizona', 'GO', 1971.265]
['5215405', 'Ouro Verde de Goiás', 'GO', 208.804]
['5215504', 'Ouvidor', 'GO', 411.318]
['5215603', 'Padre Bernardo', 'GO', 3142.615]
['5215652', 'Palestina de Goiás', 'GO', 1318.047]
['5215702', 'Palmeiras de Goiás', 'GO', 1537.196]
['5215801', 'Palmelo', 'GO', 59.809]
['5215900', 'Palminópolis', 'GO', 393.326]
['5216007', 'Panamá', 'GO', 432.204]
['5216304', 'Paranaiguara', 'GO', 1153.415]
['5216403', 'Paraúna', 'GO', 3786.578]
['5216452', 'Perolândia', 'GO', 1033.657]
['5216809', 'Petrolina de Goiás', 'GO', 530.49]
['5216908', 'Pilar de Goiás', 'GO', 906.048]
['5217104', 'Piracanjuba', 'GO', 2374.232]
['5217203', 'Piranhas', 'GO', 2045.088]
['5217302', 'Pirenópolis', 'GO', 2200.369]
['5217401', 'Pires do Rio', 'GO', 1077.641]
['5217609', 'Planaltina', 'GO', 2558.924]
['5217708', 'Pontalina', 'GO', 1434.289]
['5218003', 'Porangatu', 'GO', 4825.287]
['5218052', 'Porteirão', 'GO', 606.262]
['5218102', 'Portelândia', 'GO', 553.411]
['5218300', 'Posse', 'GO', 2076.99]
['5218391', 'Professor Jamil', 'GO', 356.292]
['5218508', 'Quirinópolis', 'GO', 3786.026]
['5218607', 'Rialma', 'GO', 268.291]
['5218706', 'Rianápolis', 'GO', 157.379]
['5218789', 'Rio Quente', 'GO', 244.655]
['5218805', 'Rio Verde', 'GO', 8374.255]
['5218904', 'Rubiataba', 'GO', 750.659]
['5219001', 'Sanclerlândia', 'GO', 509.402]
['5219100', 'Santa Bárbara de Goiás', 'GO', 140.957]
['5219209', 'Santa Cruz de Goiás', 'GO', 1109.007]
['5219258', 'Santa Fé de Goiás', 'GO', 1164.186]
['5219308', 'Santa Helena de Goiás', 'GO', 1142.337]
['5219357', 'Santa Isabel', 'GO', 812.756]
['5219407', 'Santa Rita do Araguaia', 'GO', 1357.197]
['5219456', 'Santa Rita do Novo Destino', 'GO', 970.448]
['5219506', 'Santa Rosa de Goiás', 'GO', 166.44]
['5219605', 'Santa Tereza de Goiás', 'GO', 789.544]
['5219704', 'Santa Terezinha de Goiás', 'GO', 1206.6]
['5219712', 'Santo Antônio da Barra', 'GO', 450.336]
['5219738', 'Santo Antônio de Goiás', 'GO', 135.022]
['5219753', 'Santo Antônio do Descoberto', 'GO', 943.948]
['5219803', 'São Domingos', 'GO', 3335.999]
['5219902', 'São Francisco de Goiás', 'GO', 416.535]
['5220009', "São João d'Aliança", 'GO', 3334.455]
['5220058', 'São João da Paraúna', 'GO', 286.979]
['5220108', 'São Luís de Montes Belos', 'GO', 829.62]
['5220157', 'São Luiz do Norte', 'GO', 583.832]
['5220207', 'São Miguel do Araguaia', 'GO', 6150.179]
['5220264', 'São Miguel do Passa Quatro', 'GO', 537.347]
['5220280', 'São Patrício', 'GO', 172.763]
['5220405', 'São Simão', 'GO', 415.015]
['5220454', 'Senador Canedo', 'GO', 247.005]
['5220504', 'Serranópolis', 'GO', 5521.774]
['5220603', 'Silvânia', 'GO', 2349.924]
['5220686', 'Simolândia', 'GO', 346.811]
['5220702', "Sítio d'Abadia", 'GO', 1611.851]
['5221007', 'Taquaral de Goiás', 'GO', 205.665]
['5221080', 'Teresina de Goiás', 'GO', 784.793]
['5221197', 'Terezópolis de Goiás', 'GO', 107.407]
['5221304', 'Três Ranchos', 'GO', 284.034]
['5221403', 'Trindade', 'GO', 712.69]
['5221452', 'Trombas', 'GO', 802.905]
['5221502', 'Turvânia', 'GO', 482.317]
['5221551', 'Turvelândia', 'GO', 935.659]
['5221577', 'Uirapuru', 'GO', 1154.305]
['5221601', 'Uruaçu', 'GO', 2142.484]
['5221700', 'Uruana', 'GO', 522.904]
['5221809', 'Urutaí', 'GO', 623.821]
['5221858', 'Valparaíso de Goiás', 'GO', 61.488]
['5221908', 'Varjão', 'GO', 517.402]
['5222005', 'Vianópolis', 'GO', 954.115]
['5222054', 'Vicentinópolis', 'GO', 733.794]
['5222203', 'Vila Boa', 'GO', 1052.593]
['5222302', 'Vila Propício', 'GO', 2181.593]

Note que mostrei todos os atributos das 246 feições (features) do meu shapefile. E cada feição representa um dos municípios do Estado de Goiás. Veja que os atributos são o código do município, seu nome, a sigla do estado e sua área (em metros quadrados). Deixei a listagem completa para facilitar alguém que queira fazer trabalhos relacionados a isso.


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


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