Concordo com o João, não vamos reinventar a roda, kkkkk.

Joao Morais escreveu:
>
> Fala Rubem!
>
> 2008/10/15 Rubem Nascimento da Rocha <[EMAIL PROTECTED] 
> <mailto:djpardalrocha%40hotmail.com>>:
> >
> > 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.
>
> Hack é tudo que é feito sem o suporte da linguagem. No Object Pascal,
> boolean e números não são compatíveis. O que o Object Pascal te
> fornece é um meio de hac^H^H^H forçar esta compatibilidade.
>
> C não tem nem boolean, nem elegância, nem diferença entre código limpo
> e hackeado, então a comparação ficou meio forçada.
>
> > 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.
>
> Hã... Boolean(Items.Count) não me parece mais claro do que
> (Items.Count > 0), pelo contrário. A menos que você seja um
> programador C ou Assembly.
>
> No entanto não importa. O que coloquei é o que o prof. Wirth esperava
> que fizéssemos, e não colocar a minha opinião, muito menos ir contra a
> sua.
>
> > 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.
>
> A pouca demanda para o uso de uma rotina jamais deve ser argumento
> para escolher uma opção mais cara perante uma opção mais simples. É
> justamente assim que nascem códigos mal feitos. Outros fatores como
> manutenção futura também entram na conta, mas que simplesmente não se
> aplica para uma rotina tão simples como essa.
>
> > 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)!
>
> Entendo aonde você quer chegar. Então agora basta, ou escolher um
> exemplo a altura da complexidade da implementação, ou implementar a
> rotina a altura da sua simplicidade. Mais bonito, menor e melhor são
> três grandezas diferentes para trechos de código.
>
> > 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."
>
> Eu não esperava que fosses concordar comigo, no entanto devo confessar
> que eu esperava argumentos melhores para as suas escolhas.
>
> >
> > Sds.
>
> --
> Joao Morais
>
> >
> > ________________________________
> > To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
> > From: [EMAIL PROTECTED] <mailto:jcmoraisjr%40gmail.com>
> > 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] 
> <mailto:djpardalrocha%40hotmail.com>>:
> >>
> >>
> >> 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
>
>  

Responder a