Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como testar se um diretório está vazio (não contém arquivos ou subdiretórios)

Quantidade de visualizações: 15837 vezes
Em algumas situações precisamos verificar se um diretório está vazio, talvez para excluí-lo. Veja a seguir o código para uma função diretorioVazio(), que recebe o caminho e nome do diretório e retorna true se o diretório estiver vazio e false em caso contrário. Incluí também um teste no evento Click de um botão:

function diretorioVazio(diretorio: string): Boolean;
var
  search_rec: TSearchRec;
  i: Integer;
begin
  Result := False;
  FindFirst(IncludeTrailingPathDelimiter(diretorio) +
    '*', faAnyFile, search_rec);

  for i := 1 to 2 do
    if (search_rec.Name = '.') or (search_rec.Name = '..') then
      Result := FindNext(search_rec) <> 0;

  FindClose(search_rec);......


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

Link para compartilhar na Internet ou com seus amigos:

Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Java para iniciantes - Como usar o tipo de dados short da linguagem Java

Quantidade de visualizações: 11383 vezes
O tipo de dados short pode ser usado quando queremos armazenar valores inteiros na faixa -32,768 à 32,767. Veja um exemplo:

public class Estudos{
  static short valor = 30000; 
  
  public static void main(String args[]){
    System.out.println("O valor da variável é: "
......


Porém, é preciso estar atento a um detalhe muito importante (testado na versão 6 do SDK). Veja o trecho de código seguinte:

public class Estudos{
  public static void main(String args[]){
    short a = 32;
    short b = 19;
    short soma = a + b;    
......


À primeira vista este código está correto, visto que a soma das variáveis a e b não ultrapassam a faixa do tipo short. Porém, ao tentarmos compilar, temos a seguinte mensagem de erro:

Estudos.java:5: possible loss of precision
found   : int
required: short
  short soma = a + b;
               ^
1 error
Isso acontece porque o tipo de dados resultante da aplicação do operador de adição (e demais operadores binários) a dois números, é no mínimo int. Podemos, é claro, fazer uma coerção de dados (cast). Veja:

short a = 32;
short b = 19;
......


O tipo de dados short pode ser convertido (sem a necessidade de cast) para os seguintes tipos:

short -> int -> long -> float -> double
......


Se precisarmos converter o tipo short para os tipos char e byte, teremos que lançar mão de uma coerção (cast). Veja:

short a = 32;
short b = 19;
......



C++ ::: Win32 API (Windows API) ::: Strings e Caracteres

Como converter caracteres individuais para letras maiúsculas usando a função CharUpper() da API do Windows a partir de seus códigos C++

Quantidade de visualizações: 9337 vezes
Pode usar a função CharUpper() da API do Windows para converter um caractere para seu correspondente em letra maiúscula. Veja o protótipo da função:

LPTSTR CharUpper(
  LPTSTR lpsz
);


Veja um exemplo no qual usamos esta função para converter uma letra minúscula em maiúscula:

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[]){
  CHAR letra = 'a';
  
  // vamos converter para letra maiúscula
......


Note que aqui nós fornecemos um ponteiro para o caractere que queremos transformar. Isso resulta em uma conversão sendo efetuada diretamente no caractere para o qual o ponteiro está apontando no momento. Podemos também obter o resultado da conversão em um outro ponteiro e usá-lo posteriormente. Veja:

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[]){
  CHAR letra = 'a';
  
  // vamos converter para letra maiúscula
......



Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como criar herança em Java usando extends - Programação orientada a objetos em Java

Quantidade de visualizações: 28711 vezes
Quando estamos projetando as classes que farão parte de um sistema, é aconselhável ter em mente um conceito muito importante da programação orientada a objetos: a herança.

O que um aluno, um professor e um funcionário possuem em comum? Todos eles são pessoas e, portanto, compartilham alguns dados comuns. Todos têm nome, idade, endereço, etc. E, o que diferencia um aluno de uma outra pessoa qualquer? Um aluno possui uma matrícula; Um funcionário possui um código de funcionário, data de admissão, salário, etc; Um professor possui um código de professor e informações relacionadas à sua formação.

É aqui que a herança se torna uma ferramenta de grande utilidade. Podemos criar uma classe Pessoa, que possui todos os atributos e métodos comuns a todas as pessoas e herdar estes atributos e métodos em classes mais específicas, ou seja, a herança parte do geral para o mais específico. Comece criando uma classe Pessoa (Pessoa.java) como mostrado no código a seguir:

public class Pessoa{ 
  public String nome;    
......


Esta classe possui os atributos nome e idade. Estes atributos são comuns a todas as pessoas. Veja agora como podemos criar uma classe Aluno que herda estes atributos da classe Pessoa e inclui seu próprio atributo, a saber, seu número de matrícula. Eis o código:

public class Aluno extends Pessoa{ 
......


Observe que, em Java, a palavra-chave usada para indicar herança é extends. A classe Aluno agora possui três atributos: nome, idade e matricula. Veja um aplicativo demonstrando este relacionamento:

public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da classe Aluno
    Aluno aluno = new Aluno();
 
    aluno.nome = "Osmar J. Silva";
    aluno.idade = 36;
    aluno.matricula = "AC33-65";
......


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

Nome: Osmar J. Silva
Idade: 36
Matrícula: AC33-65

A herança nos fornece um grande benefício. Ao concentrarmos características comuns em uma classe e derivar as classes mais específicas a partir desta, nós estamos preparados para a adição de novas funcionalidades ao sistema. Se mais adiante uma nova propriedade comum tiver que ser adicionada, não precisaremos efetuar alterações em todas as classes. Basta alterar a superclasse e pronto. As classes derivadas serão automaticamente atualizadas.

Esta dica foi testada no Java 8.


jQuery ::: Dicas & Truques ::: CSS (Cascading Style Sheet)

Apostila jQuery - Como definir propriedades style CSS de elementos HTML usando a função css() do jQuery

Quantidade de visualizações: 8181 vezes
Para definir as propriedade style de um determinado elemento HTML só precisamos usar a função css() da biblioteca jQuery. Veja como isso pode ser feito no trecho de código abaixo:

<script type="text/javascript">
<!--
  function definirCSS(){
    // define a cor verde para a propriedade CSS color da
......


Neste código a cor "green" é atribuída à propriedade CSS "color" do elemento DIV com o id "div_2".


PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como embaralhar os elementos de um array em PHP usando a função shuffle() - Vetores e matrizes em PHP

Quantidade de visualizações: 12254 vezes
Em algumas situações nós precisamos misturar os elementos de um vetor em PHP, ou seja, embaralhar de forma aleatória os elementos. Para isso nós podemos usar a função shuffle(), que recebe um vetor e o devolve com a ordem dos elementos embaralhada de forma randômica.

Veja o exemplo completo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  $nomes = array("Osmar", "Marcos", "Igor", "Gustavo");
 
  // ordem original
  for($i = 0; $i < count($nomes); $i++){
    echo $nomes[$i] . "<br>";
......


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

Osmar
Marcos
Igor
Gustavo

Gustavo
Osmar
Marcos
Igor


Desafios, Exercícios e Algoritmos Resolvidos de PHP

Veja mais Dicas e truques de PHP

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

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á 8 usuários muito felizes estudando em nosso site.