Sinceramente, não vejo hack nenhum. Em linguagem C, condições do tipo "if (var> 
0)" podem ser simplificadas com "if (var)". O Object Pascal me permite fazer 
isso também, como ilustro no meu código. Portanto, pra mim, não é hack. E ainda 
acrescento que faço uso de intensivo de constantes por ser uma prática que 
torna bem mais claro o código, algo bem melhor do que ficar usando magic 
numbers.

Quanto ao uso de TStringList,... ora, se em Java eu posso usar coisa parecida, 
pq não em Delphi? Se o Object Pascal possui artefatos para uso de orientação a 
objetos, e classes utilitárias para auxiliar nosso trabalho, pq não fazer uso 
delas? "Ah, o código é complexo e faz uso de heap!" Mas uma função dessas, 
muito provavelmente, não seria usada em textos muito extensos, e o impacto na 
performance geral de um grande sistema aplicativo seria o mínimo. Alias será, 
pq faço uso dessas funções intensivamente no sistema que dou manutenção 
atualmente, e não existe perda de performance com o seu uso.

Agora, putz, se for pra escrever sempre código simpleco e estruturado, então 
quem vêm do Delphi e tá acostumado a escrever só procedimentos e funções ou 
está acostumado somente a colocar componentes e codificar razoavelmente eventos 
vai se lascar feio ao tentar pegar códigos mais trabalhados em Java ou C#. 
Imagina pegar algo mais complicado como, por exemplo, validar uma texto em uma 
caixa de edição (a.k.a. TEdit) usando expressões regulares (a.k.a. RegEx)!

Mas, como diria Voltaire, "posso não concordar com o que dizes, mas até o fim 
defenderei o direito que o tens de dizê-lo."

Sds.

________________________________
To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Wed, 15 Oct 2008 22:16:55 -0300
Subject: Re: [delphi-br] [DICA] +Funções para strings

2008/10/15 Rubem Nascimento da Rocha <[EMAIL PROTECTED]>:
>
>
> if not AllowEmpty then
> for i := 0 to Count - 1 do
> while (List[i] = EmptyStr) and Boolean(List.Count) do

No seu lugar eu removeria o while e colocaria um for downto, além de
tirar esse hack do código e ajudar o caboclo a escrever código limpo.

> { Conta quantas palavras existem em uma string }
> function CountWords(S: string): integer;
> begin
> with TStringList.Create do

Por que não usar o for? TStrings além de usar o heap tem um código
mais complexo para uma tarefa simples.

--
Joao Morais

> try
> Delimiter := ' ';
> DelimitedText := S;
> Result := Count;
> finally
> Free
> end
> end;
>
>
> Sds.,
>
> Rubem Rocha
> Manaus, AM
> __________________________________________________________
> Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
> http://www.amigosdomessenger.com.br/
> ------------------------------------
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM>>>>>
>
>
>
>







_________________________________________________________________
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br

Responder a