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

Como copiar arquivos em PHP usando a função copy()

Quantidade de visualizações: 23623 vezes
Muitas vezes precisamos copiar um arquivo de um local para outro. Em PHP, isso pode ser feito com o auxílio da função copy(). Esta função recebe o caminho e nome do arquivo a ser copiado e o caminho e nome para o qual a cópia será feita. Veja um exemplo:

<?php
  // copia o arquivo testes.txt para o diretório 
  // imagens
  $de = "/site/public_html/testes.txt";
  $para = "/site/public_html/imagens/testes.txt";
  
  if(copy($de, $para)){
    echo "Arquivo copiado com sucesso.";
  }
  else{
    echo "Não foi possível copiar o arquivo.";
  }
?>

Tenha em mente que a função copy() retorna um valor boolean (true ou false) informando sobre o sucesso ou não da operação.


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

Exercício Resolvido de Python - Ler um número inteiro na faixa 0-999 e mostrar a soma de seus dígitos - Apostila de Python Básico

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

Escreva um programa Python que leia um inteiro na faixa 0-999 e mostre a soma de seus dígitos. Por exemplo, se o valor for 523, a soma de seus dígitos será 5 + 2 + 3 = 10. Lembre-se que você deverá usar apenas os operadores matemáticos e o operador de módulo (%). Seu programa deverá exibir a seguinte saída:

Informe um valor de 0 até 999: 821
A soma dos dígitos é: 11
Resposta/Solução:

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

# função principal do programa
def main():
  # vamos solicitar ao usuário que informe um valor inteiro
  # na faixa 0 a 999 (incluindo)
  valor = int(input("Informe um valor de 0 até 999: "))
  
  # vamos verificar se o valor está na faixa permitida
  if(valor < 0 or valor > 999):
    print("Valor fora da faixa permitida")
  else:
    # vamos obter o terceiro dígito
    terceiro = valor % 10
    # obtém os digitos restantes
    valor = valor // 10
 
    # vamos obter o segundo dígito
    segundo = valor % 10
    # obtém os digitos restantes
    valor = valor // 10
 
    # vamos obter o primeiro dígito
    primeiro = valor % 10
    # obtém os digitos restantes
    valor = valor // 10
 
    # vamos obter a soma dos dígitos
    soma = terceiro + segundo + primeiro
 
    # vamos mostrar o resultado
    print("A soma dos dígitos é:", soma)
  
if __name__== "__main__":
  main()



Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como gerar vetores e matrizes com números inteiros aleatórios usando a função random.randint() da biblioteca NumPy para - Machine Learning com Python

Quantidade de visualizações: 962 vezes
Veremos nessa dica como podemos usar o método random.randint() da biblioteca NumPy para gerar vetores e matrizes já preenchidos com números inteiros aleatórios.

Note que a criação de vetores e matrizes preenchidos com números randômicos é uma parte importante para o desenvolvimento de modelos de teste (test models) em Inteligência Artificial (IA), Machine Learning e outras áreas de estudo que envolvem Data Science.

Vamos começar com a forma mais simples do uso da função random.randint() para gerar um vetor de 10 elementos contendo números aleatórios de 0 até 10 (não incluído):

# importamos o módulo random da bibliteca NumPy
from numpy import random

def main():
  # vamos gerar um vetor de números inteiros aleatórios
  #  de 0 (incluído) à 10 (não incluído) 
  valores = random.randint(10, size=10)
  print("O vetor gerado foi: ", valores)  

if __name__== "__main__":
  main()


Ao executar este código teremos um resultado parecido com:

O vetor gerado foi: [0 3 2 3 8 9 3 9 6 4]

Aqui nós informamos o limite alto do valor aleatório a ser gerado (mas ele não é incluído). Se quisermos limitar a faixa inferior, podemos tirar proveito dos parâmetros low e high da função randint(). Veja:

# importamos o módulo random da bibliteca NumPy
from numpy import random

def main():
  # vamos gerar um vetor de números inteiros aleatórios
  #  de 50 (incluído) à 101 (não incluído) 
  valores = random.randint(50, 101, 10)
  print("O vetor gerado foi: ", valores)  

if __name__== "__main__":
  main()

Agora o resultado será parecido com:

O vetor gerado foi: [92 89 66 52 61 77 55 58 72 55]

Para gerarmos uma matriz, por exemplo, de 2 linhas e 4 colunas, só precisamos gerar o vetor de números aleatórios e em seguida usar o método reshape(), também da biblioteca NumPy para converter a matriz de uma dimensão (vetor) em uma matriz de duas dimensões. Veja:

from numpy import random

def main():
  # vamos gerar um vetor de números inteiros aleatórios
  #  de 1 (incluído) à 21 (não incluído) 
  valores = random.randint(1, 21, 8)
  
  # agora vamos converter o vetor para uma matriz
  # de 2 linhas e 4 colunas 
  valores = valores.reshape(2, 4)

  print("A matriz gerada foi: ", valores)  

if __name__== "__main__":
  main()

Quando executamos este código nós temos um resultado parecido com:

A matriz gerada foi:  [[17  5  2  9]
 [14 10 10 19]]

A partir da versão 1.19 da NumPy, os desenvolvedores da biblioteca recomendam o uso do método integers() do módulo default_rng().


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

Como contar as ocorrências de uma substring em uma string em C usando uma função substring_count() personalizada

Quantidade de visualizações: 10303 vezes
Em algumas situações precisamos obter a quantidade de vezes que uma substring ocorre dentro de uma string. Para isso podemos usar a função personalizada substring_count(). Esta função recebe a string e a substring que desejamos pesquisar e retorna um inteiro contendo a quantidade de vezes que a substring foi encontrada. Veja o código:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// função personalizada que permite contar as
// ocorrências de uma substring em uma string
int substring_count(const char *str, const char *substring){
  int i, j, k, quant = 0;

  // vamos percorrer todos os caracteres da string
  for(i = 0; str[i]; i++){
    for(j = i, k = 0; str[j] == substring[k]; j++, k++){
      if(substring[k + 1] == 0) // fim da comparação
        quant++;
    }
  }

  return quant;
}

int main(int argc, char *argv[]){
  char frase[] = "Gosto muito de Java, JavaScript e Python";

  printf("Ocorrencias encontradas: %d",
    substring_count(frase, "Java"));

  puts("\n\n");
  system("PAUSE");
  return 0;
}



C# ::: LINQ ::: LINQ to Objects

Como retornar o último elemento de um array de strings em C# usando a função Last() do LINQ

Quantidade de visualizações: 1209 vezes
Nesta dica mostrarei um exemplo bem simples do uso do método Last() do LINQ (Language-Integrated Query) do C# para retornar o último elemento de um vetor de strings.

É claro que este método funciona com qualquer coleção, mas um exemplo simples nos ajudará a entender melhor o seu funcionamento. Em outras dicas eu aprofundo o uso deste método.

Vamos ao código então. Veja:

using System;
using System.Linq;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos construir um vetor de strings
      string[] linguagens = {"Java", "Python", "PHP", "Ruby"};
      
      // vamos obter o último elemento do vetor
      string ultimo = linguagens.Last();

      // vamos mostrar o resultado
      Console.WriteLine("A última linguagem é: {0}", ultimo);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

A última linguagem é: Ruby

Fique atento ao fato de que o método Last() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas.

Veja o resultado ao chamarmos este método em um vetor vazio:

System.InvalidOperationException
HResult=0x80131509
Message=Sequence contains no elements
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Last[TSource](IEnumerable`1 source)
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11


Delphi ::: VCL - Visual Component Library ::: TComboBox

Como retornar o texto do item selecionado em um ComboBox do Delphi

Quantidade de visualizações: 28810 vezes
Uma das tarefas mais frequentes que precisamos realizar quando estamos usando o controle TComboBox em nossas aplicações Delphi é obter o texto do item selecionado. Isso pode ser feito fornecendo-se o índice do item selecionado (itemIndex) como subscrito para a propriedade Items (do tipo TStrings) do ComboBox. Veja o exemplo abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
  item: string;
begin
  // vamos obter o valor do item selecionado no ComboBox
  item := ComboBox1.Items[ComboBox1.ItemIndex];

  // mostra o resultado
  ShowMessage('O item selecionado é: ' + item);
end;

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


Java ::: Classes e Componentes ::: JTextArea

Java Swing - Como adicionar mais texto a um JTextArea usando o método append()

Quantidade de visualizações: 40 vezes
Nesta dica mostrarei como é possível usar o método append() da classe JTextArea para adicionar mais conteúdo a esse controle. Esta é uma técnica muito importante no desenvolvimento de aplicações Java Swing.

Segue um exemplo completo (note que fiz toda a aplicação Java Swing na mão mesmo, ou seja, não usei o editor visual do NetBeans ou semelhantes):

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Estudos extends JFrame {
  JTextArea textArea;
  JTextField texto;
  JButton btn;

  public Estudos() {
    super("Como adicionar texto a um JTextArea");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);

    textArea = new JTextArea(10, 20);

    texto = new JTextField(10);
    btn = new JButton("Adicionar Texto");
    btn.addActionListener(
      new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          textArea.append(texto.getText());
        }
      }
    );

    c.add(textArea);
    c.add(texto);
    c.add(btn);

    setSize(350, 250);
    setVisible(true);
  }

  public static void main(String args[]) {
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Veja que neste exemplo, mais conteúdo é adicionado ao controle JTextArea sem provocar uma quebra de linha. Em outras dicas e truques dessa seção você aprenderá como isso pode ser feito.


AutoCAD VBA ::: Dicas & Truques ::: Linha, Linhas, Comando LINE

Como criar uma linha no AutoCAD usando Autocad VBA e a função AddLine() do objeto ModelSpace

Quantidade de visualizações: 663 vezes
A função AddLine() do AutoCAD VBA nos permite desenhar uma linha mediante o fornecimento de um ponto inicial e um ponto final. Esta função é chamada a partir do objeto ModelSpace, que, por sua vez, está contido no objeto ThisDrawing.

A função AddLine() recebe dois valores do tipo Variant, ou seja, um vetor de três elementos do tipo double, e retorna um objeto Line.

Veja um código AutoCAD VBA completo no qual informamos as coordenadas x, y e z dos pontos inicial e final e desenhamos uma linha entre eles:

' Procedimento que permite desenhar uma linha entre dois pontos
Sub DesenharLinhaDoisPontos()
  ' vamos declarar o objeto Line
  Dim linha As AcadLine
  ' o ponto inicial
  Dim pontoInicial(0 To 2) As Double
  ' o ponto final
  Dim pontoFinal(0 To 2) As Double

  ' vamos definir as coordenadas dos dois pontos. Uma boa idéia
  ' seria pedir para o usuário informar os pontos. Em outras dicas
  ' do site essa idéia é explorada
  pontoInicial(0) = 0: pontoInicial(1) = 0: pontoInicial(2) = 0
  pontoFinal(0) = 350: pontoFinal(1) = 500: pontoFinal(2) = 0

  ' e agora desenhamos a linha
  Set linha = ThisDrawing.ModelSpace.AddLine(pontoInicial, pontoFinal)
  ' e damos uma Zoom All na área de desenho
  ZoomAll
End Sub

Ao executar este código AutoCAD VBA nós teremos uma linha saindo do ponto x=0,y=0,z=0 e indo até o ponto x=350,y=500,z=0.


C# ::: Dicas & Truques ::: Mouse e Teclado

C# Windows Forms - Como tratar eventos do mouse em suas aplicações C# Windows Forms

Quantidade de visualizações: 16541 vezes
Aplicações de interface gráfica (GUI) em C# fazem uso extensivo do mouse e qualquer classe que herde de System.Windows.Forms.Control pode receber e tratar seus eventos. Os eventos do mouse mais comuns são pressionamento (click), liberação, movimento, etc. E cada um possui suas particularidades.

Sempre que um evento do mouse ocorre, as informações sobre tal evento são fornecidas ao método de tratamento de evento por meio de um objeto da classe MouseEventArgs (alguns eventos usam EventArgs) e o delegate usado para criar os gerenciadores de eventos do mouse é MouseEventHandler. Veja, por exemplo, o tratador de evento para o evento MouseClick de um Button:

private void button1_MouseClick(object sender, MouseEventArgs e){
  MessageBox.Show("Sou um Button e acabei de ser clicado!");
}

A classe MouseEventArgs é muito útil, pois é ela que nos permite obter informações sobre qual botão foi pressionado, as coordenadas x e y do evento, se um duplo-clique ocorreu, etc.

Veja um trecho de código no qual verificamos qual botão do mouse foi pressionado durante um evento MouseUp em um formulário:

private void Form1_MouseUp(object sender, MouseEventArgs e){
  if(e.Button == MouseButtons.Left){
    MessageBox.Show("Fui clicado com o botão esquerdo!");
  }
  else if(e.Button == MouseButtons.Right){
    MessageBox.Show("Fui clicado com o botão direito!");
  }
  else if (e.Button == MouseButtons.Middle){
    MessageBox.Show("Fui clicado com o botão do meio!");
  }
  else{
    MessageBox.Show("O que está acontecendo?");
  }
}

Veja os eventos do mouse que possuem um objeto da classe EventArgs:

a) MouseEnter - Ocorre quando o cursor do mouse entra na área de um controle.

b) MouseLeave - Ocorre quando o cursor do mouse deixa a área de um controle.

c) Click - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse.

Veja os eventos do mouse que possuem um objeto da classe MouseEventArgs:

a) MouseDown - Ocorre quando o botão do mouse é pressionado dentro da área de um controle.

b) MouseHover - Ocorre quando o cursor do mouse pára sobre a área de um controle (sem clique, pressionamento ou movimento).

c) MouseMove - Ocorre quando movimentamos o mouse na área de um controle.

d) MouseUp - Ocorre quando o botão do mouse é liberado sobre a área de um controle.

e) MouseClick - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse.

Há algumas diferenças significativas entre os eventos Click e MouseClick. Não deixe de consultar as outras dicas desta seção para aprofundar seus conhecimentos.


CSS ::: Dicas & Truques ::: Cores de Fundo e Imagens de Fundo

Como definir uma imagem de fundo fixa para suas páginas HTML em CSS usando as propriedades background-image, background-repeat e background-attachment

Quantidade de visualizações: 11259 vezes
Nesta dica mostrarei como combinar as propriedades CSS background-image, background-repeat e background-attachment para definir uma imagem de fundo fixa para a página. Dessa forma, a imagem não será repetida e e permanecerá fixa no fundo da página, ou seja, não vai rolar com o restante do conteúdo.

Veja como o exemplo ficará na imagem abaixo (é claro que sua imagem de fundo será diferente):



Veja o código HTML completo para o exemplo, incluindo as definições de estilo CSS:

<head>
<title>Estudando CSS</title>

<meta name="viewport" content="width=device-width, 
  initial-scale=1">
 
<style type="text/css">
  body {background-image: url(fundo.jpg);
    background-repeat: no-repeat; 
    background-attachment: fixed}
</style>

</head>
<body>
 
</body>
</html>


Carregar Publicações Anteriores


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 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
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

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



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