Você está aqui: Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todas as ocorrências de uma substring em uma string Delphi usando a função ReplaceStr()

Quantidade de visualizações: 16296 vezes
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string. Em Delphi isso pode ser feito com o auxílio da função ReplaceStr(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:

----------------------------------------------------------------------
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
  frase: string;
begin
  frase := 'PHP? Sim, eu gosto muito de PHP';

  // vamos substituir todas as ocorrências de "PHP" por "Delphi'
  frase := ReplaceStr(frase, 'PHP', 'Delphi');

  // vamos exibir o resultado
  ShowMessage(frase);
end;

Lembre-se de que esta função diferencia maiúsculas e minúsculas.

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter uma string em um valor numérico de ponto-flutuante (com parte fracionária) em Delphi usando as funções StrToFloat(), TryStrToFloat() e StrToFloatDef()

Quantidade de visualizações: 24777 vezes
Em algumas situações precisamos converter strings em valores numéricos do tipo ponto-flutuante, ou seja, números que contenham uma parte fracionária. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos.

Vamos começar com a função StrToFloat() da unit SysUtils. Esta função recebe uma string representando um valor de ponto-flutuante válido e retorna um valor de ponto-flutuante. Veja o exemplo:

----------------------------------------------------------------------
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
  valor1, valor2, soma: Double;
begin
  // vamos receber as strings dos TEdits e converter
  // seus valores para números de ponto-flutuante
  // note que em Delphi, um valor de ponto-flutuante
  // é informado em caixas de texto usando vírgula. Ex: 7,3
  valor1 := StrToFloat(Edit1.Text);
  valor2 := StrToFloat(Edit2.Text);

  // vamos obter a soma dos dois valores
  soma := valor1 + valor2;

  // vamos exibir o resultado. Note o uso de FloatToStr() para
  // converter o valor fracionário em string
  ShowMessage('A soma é: ' + FloatToStr(soma));
end;

Note que, se a string sendo convertida possuir um valor de ponto-flutuante inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToFloat(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Extended, Double ou Single que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. 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);
var
  valor: Double;
begin
  // vamos tentar converter o valor da caixa de texto
  // em um valor de ponto-flutuante
  if TryStrToFloat(Edit1.Text, valor) then
    ShowMessage('Conversão efetuada com sucesso.')
  else
    ShowMessage('Erro na conversão');
end;

Há ainda uma terceira possibilidade: usar a função StrToFloatDef(). Esta função funciona exatamente da mesma forma que StrToFloat(), exceto que agora, se houver um erro de conversão, um valor de ponto-flutuante padrão será retornado. 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);
var
  valor: Double;
begin
  // vamos converter o valor da caixa de texto
  // em um valor de ponto-flutuante. Se a conversão não puder
  // ser feita o valor 10,50 será atribuído à varial valor
  valor := StrToFloatDef(Edit1.Text, 10.50);

  // vamos exibir o resultado
  ShowMessage(FloatToStr(valor));
end;

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


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como verificar se uma substring está contida em uma string usando as funções ContainsStr() e AnsiContainsStr() do Delphi

Quantidade de visualizações: 32298 vezes
Em algumas situações precisamos verificar se uma substring está contida em uma string. Em Delphi isso pode ser feito com o auxílio da função ContainsStr() ou AnsiContainsStr(). Esta função requer a string alvo da pesquisa e a substring a ser pesquisada. O retorno será true se a substring estiver contida na string. Do contrário o retorno será false.

Estas duas funções possuem as seguintes assinaturas:

function ContainsStr(const AText, ASubText: 
  string): Boolean;
function AnsiContainsStr(const AText, ASubText: 
  string): Boolean;


Veja agora um exemplo de seu uso:

----------------------------------------------------------------------
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
  frase: string;
begin
  frase := 'Gosto muito de Delphi, PHP e Java';

  // vamos verificar se a string contém a substring "PHP"
  if AnsiContainsStr(frase, 'PHP') then
    ShowMessage('A frase contem a substring indicada')
  else
    ShowMessage('A frase NÃO contem a substring indicada')
end;

Lembre-se de que esta função diferencia maiúsculas e minúsculas.

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como aplicar cores alternadas às colunas de um TDBGrid do Delphi (efeito zebrinha)

Quantidade de visualizações: 9519 vezes
Em algumas situações gostaríamos de aplicar o efeito zebrinha, ou seja, aplicar cores alternadas às colunas de um controle TDBGrid. Esta técnica é muito útil quando temos grids com várias colunas e queremos facilitar a visualização dos dados por parte dos usuários.

A forma mais comum de se aplicar cores alternadas às colunas do DBGrid é por meio do evento OnDrawColumnCell. Veja o trecho de código abaixo:

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

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  grid: TDBGrid;
begin
  // obtém um referência ao DBGrid
  grid := sender as TDBGrid;

  // o número da coluna é par?
  if Odd(DataCol) then
    grid.Canvas.Brush.Color := clWhite
  else
    grid.Canvas.Brush.Color := clYellow;

  // vamos terminar de colorir a célula
  grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Execute este código e verá que a primeira coluna é pintada de branco, a segunda de amarelo, a terceira de branco e assim por diante. Note que neste código eu não tratei a seleção de células, na qual a cor do texto se iguala ao branco do fundo da célula. Veja mais dicas nesta seção para saber como realizar esta tarefa você mesmo.

Fique atento ao fato de que este código aplica as cores alternadas às colunas mesmo se estas forem colunas persistentes com cores já definidas por meio do Object Inspector.

Esta dica foi escrita e testada no Delphi 2009.


Vamos testar seus conhecimentos em Java

Analise o seguinte código Java

double a = 0 / 5.0;
System.out.println(a);

Qual é o resultado de sua execução?

A) Infinity

B) NaN

C) Uma exceção java.lang.ArithmeticException: / by zero

D) 0.0
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética Empresarial e Profissional: Noções Gerais

O termo "moral" vem do latim mores, que quer dizer costumes. Portanto, moral é um conjunto de hábitos e costumes praticados por um grupo. Tais hábitos e costumes são aceitos e incorporados por serem considerados bons. Sobre isso, assinale a alternativa correta.

A) Os hábitos, por serem bons, são considerados justos.

B) Os hábitos, mesmo sendo maus, podem ser considerados justos.

C) Independentemente de serem bons ou maus, os hábitos não alteram as condições de realização das pessoas.

D) Considerando que os hábitos bons e justos se tornam imprescindíveis para os indivíduos, eles são convencionados em forma de acordos.

E) Considerando que os hábitos bons e justos se tornam dispensáveis para os indivíduos, eles são convencionados em forma de lei.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Vantagens e Desvantagens do Concreto Armado

O concreto simples é formado pela mistura entre cimento, agregados (miúdos e graúdos) e água. A junção de barras de aço na forma de armaduras com esse material resulta no concreto armado.

Com relação às vantagens da utilização do concreto armado, analise as afirmações a seguir:

I. Os processos de construção de estruturas de concreto armado são conhecidos, e a sua execução não exige mão de obra com elevado nível de qualificação.

II. A grande massa e a rigidez dos elementos de concreto armado minimizam os efeitos de vibrações e oscilações decorrentes do vento e de utilização.

III. Pelo fato de as estruturas de concreto serem monolíticas, elas apresentam facilidade em serem moldadas.

Qual(is) está(ão) correta(s)?

A) Apenas I.

B) Apenas II.

C) Apenas III.

D) I e II.

E) II e III.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Instalações prediais de combate a incêndio

A água é um excelente agente extintor de incêndio e, por isso, é utilizada tanto em sistemas de proteção por chuveiros automáticos quanto em sistemas hidráulicos preventivos.
O sistema hidráulico preventivo é dividido em três subsistemas que auxiliam o seu funcionamento.

Sobre esses subsistemas, analise as afirmativas a seguir e assinale-as com V (verdadeiro) ou F (falso):

( ) O subsistema de reservação deve ter reservatório elevado, cuja água pode ser utilizada também para abastecimento da edificação.

( ) O subsistema de pressurização deve ser capaz de transportar água nas condições adequadas de vazão e pressão para extinguir o fogo.

( ) O subsistema de comando é responsável pelo acionamento do sistema de hidrantes, cujo operador deve acionar manualmente a bomba de incêndio.

Assinale a alternativa que apresenta a sequência correta:

A) F - F - F.

B) V - V - F.

C) F - V - F.

D) F - V - V.

E) V - V - V.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Questões de Concurso Engenharia Civil - Fundações

COPEL - No estudo do subsolo para projeto de fundações, o número de golpes dados com um peso padrão, caindo em queda livre, de uma altura constante, necessários para a penetração de um amostrador padrão à profundidade de 30cm é denominado:

A) Índice coesivo.

B) Índice SPT.

C) Carga morta.

D) Índice de resistência à penetração.

E) Carga aparente.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

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