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