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
Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Delphi ::: Dicas & Truques ::: BASS (bass.dll - Biblioteca de Áudio)

BASS - O que é, como baixar e testar esta DLL de áudio em seus programas Delphi

Quantidade de visualizações: 15431 vezes
A BASS é uma biblioteca de áudio para uso no Windows e no software Mac OSX. Seu propósito é fornecer aos desenvolvedores uma ferramenta poderosa de sampleamento (samples), stream (MP3, MP2, MP1, OGG, WAV, AIFF, formatos customizados e outros mais via add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs) e funções de gravação. Tudo isso em uma pequena DLL, apenas 97,5 Kb na versão 2.4.

No Windows a BASS requer o DirectX 3 ou mais recente para saída de áudio e tira vantagem dos drivers de aceleração de hardware DirectSound and DirectSound3D, quando disponíveis. No OSX, a BASS use o CoreAudio para saída, e o OSX 10.3 ou mais recente é recomendado. Tanto o PowerPC quanto o Intel Macs são suportados.

Além disso, a BASS também está disponível para as plataformas Win64, WinCE, Linux e iPhone. Nesta dica mostrarei como baixar e testar a BASS a partir de suas aplicações Delphi. Siga atentamente os passos abaixo:

a) Acesse http://www.un4seen.com ou pesquise no Google ou seu site de busca favorito por "bass.dll". Baixe a versão mais recente e descompacte em um diretório de sua preferência. No diretório delphi você encontrará um arquivo bass.pas contendo as importações das funções da bass.dll. Copie este arquivo para o diretório do seu projeto Delphi;

b) Agora copie a DLL bass.dll para o diretório de seu projeto ou para os diretórios Windows, System ou System32;

c) Crie um nova aplicação Delphi e adicione a unit Bass no seu uses;

d) Chegou a hora de testar. Acrescente o código abaixo no evento Click de um botão:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos verificar se a versão da bass.dll corresponde à versão contida
  // no Bass.pas (BASSVERSION = xxxx;)
  if HIWORD(BASS_GetVersion) <> BASSVERSION then
    begin
      // An incorrect version of BASS.DLL was loaded
      MessageBox(0, 'Uma versão incorreta da BASS.DLL foi carregada', 
        nil, MB_ICONERROR);
      Halt;
    end;

  // Initialize audio - default device, 44100hz, stereo, 16 bits
  // Vamos inicializar o áudio - dispositivo padrão, 44100hz, stereo, 16 bits
  if not BASS_Init(-1, 44100, 0, Handle, nil) then
    // Error initializing audio!
    Error('Houve um erro ao inicializar o áudio')
  else
    ShowMessage('Áudio inicializado com sucesso.');
end;

Neste código nós efetuamos uma chamada à procedure Error. Mais abaixo você encontrará o local no qual ela deverá ser inserida.

Uma vez inicializada a bass.dll, podemos executar uma música WAV, AIFF, MP3, MP2, MP1 ou OGG da seguinte forma:

procedure TForm1.Button2Click(Sender: TObject);
var
  arquivo: String; // nome do arquivo MP3
  musica: HSAMPLE; // um handle para a amostra (sample)
  ch: HCHANNEL; // um handle para o canal de execução
begin
  if not OpenDialog1.Execute then
    Exit;

  // vamos carregar a música WAV, AIFF, MP3, MP2, MP1 ou OGG a ser executada
  arquivo := OpenDialog1.FileName;
  musica := BASS_SampleLoad(FALSE, PChar(arquivo), 0, 0, 3, 
    BASS_SAMPLE_OVER_POS);

  // vamos obter o canal de execução
  ch := BASS_SampleGetChannel(musica, False);

  // vamos centralizar o som (igual dos dois lados)
  BASS_ChannelSetAttribute(ch, BASS_ATTRIB_PAN, 0);

  // vamos definir o volume (0 = silêncio; 1 = volume total)
  BASS_ChannelSetAttribute(ch, BASS_ATTRIB_VOL, 1);

  if not BASS_ChannelPlay(ch, False) then
    // Error playing sample!
    Error('Erro ao executar a amostra!');
end;

E, para facilitar o estudo dos iniciantes, segue o código completo para a unit usada nesta demonstração:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bass, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    procedure Error(msg: string);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Error(msg: string);
var
  s: string;
begin
  // Error code
  s := msg + #13#10 + '(Código de erro: ' + IntToStr(BASS_ErrorGetCode) + ')';
  MessageBox(Handle, PChar(s), nil, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos verificar se a versão da bass.dll corresponde à versão contida
  // no Bass.pas (BASSVERSION = xxxx;)
  if HIWORD(BASS_GetVersion) <> BASSVERSION then
    begin
      // An incorrect version of BASS.DLL was loaded
      MessageBox(0, 'Uma versão incorreta da BASS.DLL foi carregada', 
        nil, MB_ICONERROR);
      Halt;
    end;

  // Initialize audio - default device, 44100hz, stereo, 16 bits
  // Vamos inicializar o áudio - dispositivo padrão, 44100hz, stereo, 16 bits
  if not BASS_Init(-1, 44100, 0, Handle, nil) then
    // Error initializing audio!
    Error('Houve um erro ao inicializar o áudio')
  else
    ShowMessage('Áudio inicializado com sucesso.');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  arquivo: String; // nome do arquivo MP3
  musica: HSAMPLE; // um handle para a amostra (sample)
  ch: HCHANNEL; // um handle para o canal de execução
begin
  if not OpenDialog1.Execute then
    Exit;

  // vamos carregar a música WAV, AIFF, MP3, MP2, MP1 ou OGG a ser executada
  arquivo := OpenDialog1.FileName;
  musica := BASS_SampleLoad(FALSE, PChar(arquivo), 0, 0, 3, 
    BASS_SAMPLE_OVER_POS);

  // vamos obter o canal de execução
  ch := BASS_SampleGetChannel(musica, False);

  // vamos centralizar o som (igual dos dois lados)
  BASS_ChannelSetAttribute(ch, BASS_ATTRIB_PAN, 0);

  // vamos definir o volume (0 = silêncio; 1 = volume total)
  BASS_ChannelSetAttribute(ch, BASS_ATTRIB_VOL, 1);

  if not BASS_ChannelPlay(ch, False) then
    // Error playing sample!
    Error('Erro ao executar a amostra!');
end;

end.


Há duas funcionalidades que devem ser acrescentadas a este código:

a) Possibilidade de parar a música em execução;
b) Fechar os canais de execução e a bass.dll, liberando a memória usada na alocação dos recursos.

Em outras dicas desta seção você verá como isso pode ser feito.

Para fins de compatibilidade esta dica ou anotação foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

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

Como retornar o tamanho de um array em Rust usando a função len()

Quantidade de visualizações: 378 vezes
Em várias situações nós precisamos obter e retornar a quantidade de elementos em um vetor Rust, ou seja, um array. Para isso nós podemos usar a função len() do objeto Array.

Veja um exemplo Rust no qual nós criamos um array com cinco elementos do tipo inteiro e em seguida usando a função len() para retornar o seu tamanho:

// função principal do programa Rust
fn main() {
  // vamos criar um array com 5 elementos
  let valores = [7, 3, 4, 9, 1];
  
  // agora vamos obter o tamanho do array
  let tamanho = valores.len();
  
  // e mostramos o resultado
  println!("O array possui {} elementos", tamanho);
}

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

O array possui 5 elementos


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

Exercícios Resolvidos de Python - Escreva um programa em Python que usa a função log10() para informar a quantidade de dígitos em um número inteiro

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

Escreva um algorítmo em Python que peça para o usuário informar um número inteiro de qualquer tamanho, ou seja, qualquer quantidade de dígitos. Em seguida seu código deverá informar a quantidade de dígitos contida no número inteiro digitado pelo usuário. Seu programa deverá, obrigatoriamente, usar a função log10() do módulo Math.

Sua saída deverá ser parecida com:

Informe um número inteiro de qualquer tamanho: 847
O número informado possui 3 dígitos
Resposta/Solução:

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

# vamos importar o módulo Math
import math

# método principal
def main():
  # vamos pedir para o usuário informar um número inteiro
  numero = int(input("Informe um número inteiro de qualquer tamanho: "))
  
  # agora vamos obter a quantidade de dígitos no
  # número informado
  tamanho = int(math.log10(numero)) + 1
	
  # mostramos o resultado
  print("O número informado possui {0} dígitos".format(tamanho))

if __name__== "__main__":
  main()



C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primo

Quantidade de visualizações: 8550 vezes
Exercícios Resolvidos de C++ - Uma função C++ que recebe um valor inteiro e informa se o mesmo é um número primo

Pergunta/Tarefa:

Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são.

Escreva uma função C++ que recebe um valor inteiro e informe se o mesmo é um número primo. Você deverá usar a seguinte assinatura para a função:

bool primo(int valor){
  // implementação aqui
}
Note que a função retornará true se o valor for primo e false em caso contrário. Chame esta função a partir da função main() de forma que sua saída seja parecida com:

Informe um valor inteiro: 7
O numero informado é primo
Resposta/Solução:

Veja a resolução comentada deste exercício em C++:

#include <cstdlib>
#include <iostream>

using namespace std;

// protótipo da função primo()
bool primo(int);

int main(int argc, char *argv[]){
  int numero;
  
  setlocale(LC_ALL,""); // para acentos do português
	
  cout << "Informe um valor inteiro: ";
  cin >> numero;
  
  // vamos verificar se o valor informado é um número primo
  if(primo(numero)){
    cout << "O numero informado é primo\n" << endl;             
  }
  else{
    cout << "O numero informado NÃO é primo\n" << endl;     
  }
  
  system("PAUSE");
  return EXIT_SUCCESS;
}

bool primo(int valor){
  // se o valor fornecido for 7, a variável i do laço contará
  // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o 
  // módulo de 7 por qualquer um dos valores neste intervalo 
  // for igual a 0, então o número não é primo
  for(int i = 2; i <= (valor / 2); i++){
    if(valor % i == 0){
      return false; // não é primo
    }
  }
    
  return true;
}



Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata)

Java MySQL - Como obter os tipos de tabelas suportados pelo MySQL usando o método getTableTypes() da classe DatabaseMetaData

Quantidade de visualizações: 5180 vezes
Em algumas situações precisamos obter os tipos de tabelas suportados por uma determinada versão do MySQL. Isso pode ser feito com uma chamada ao método getTableTypes() da classe com.mysql.jdbc.DatabaseMetaData. Um objeto desta classe é obtido a partir do método getMetaData() da interface Connection (para o driver com.mysql.jdbc.Driver, é claro).

A assinatura do método getTableTypes() é:

public ResultSet getTableTypes() throws SQLException 
O retorno do método é um ResultSet contendo os tipos de tabelas, tais como "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS" e "SYNONYM".

Vamos ver um exemplo? Veja um trecho de código que usei para listar os tipos de tabelas disponíveis no MySQL 5.0:

package estudosbancodados;

import java.sql.*;

public class EstudosBancoDados{
  public static void main(String[] args) {
    // strings de conexão
    String databaseURL = "jdbc:mysql://localhost/estudos";
    String usuario = "root";
    String senha = "osmar1234";
    String driverName = "com.mysql.jdbc.Driver";

    try {
      Class.forName(driverName).newInstance();
      Connection conn = DriverManager.getConnection(databaseURL, usuario, senha);

      // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData
      DatabaseMetaData dbmd = conn.getMetaData();

      // vamos obter os tipos de tabelas suportadas por esta versão do MySQL
      ResultSet tiposTabelas = dbmd.getTableTypes();
      while(tiposTabelas.next()){
        System.out.println(tiposTabelas.getString("TABLE_TYPE"));
      }
      
      // vamos fechar o ResultSet
      tiposTabelas.close();
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }
    catch (Exception e) {
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
    }
  }
}

O resultado da execução deste código foi:

TABLE
VIEW
LOCAL TEMPORARY


Python ::: Dicas & Truques ::: Strings e Caracteres

Como contar as ocorrências de uma substring em uma string Python usando a função count()

Quantidade de visualizações: 9569 vezes
Em várias ocasiões nós precisamos obter a quantidade de vezes que parte de uma palavra é encontrada em outra palavra, frase ou texto, ou seja, uma substring dentro de uma string. Para isso nós podemos usar o método count() da linguagem Python. Veja sua assinatura:

count(substring[, início[, fim]])
Se o início for definindo, a busca inicia a partir do índice informado (começando em 0). Se o argumento fim for informado, então a busca começa em ínicio e termina no índice fim.

Veja um código Python completo para este exemplo:

# função principal do programa
def main():
  frase = "Gosto de Python porque Python é muito bom"
 
  # conta as ocorrências de "Python"
  print("\"Python\" ocorreu", frase.count("Python"), "vezes.")
  
if __name__== "__main__":
  main()

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

"Python" ocorreu 2 vezes.


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

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

Anúncio Patrocinado
Chat de Sexo - Site para adultso - Maiores de 18 anos. Converse com pessoas de todo o Brasil, de forma discreta e anônima


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