É, cada um pensa de um jeito! Minha intenção era apenas a de ajudar. Acho 
melhor ficar só nas sugestões de idéias. Cada um tem a sua maneira de 
codificar. E em respeito a essas diferenças, ficarei apenas na surdina, na 
obscuridade, observando. Nada mais de códigos. Caso alguém queira a minha 
opinião, estou por aqui.

Sds.

________________________________
To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Thu, 16 Oct 2008 00:09:42 -0200
Subject: Re: [delphi-br] [DICA] +Funções para strings

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]
> >:
>>
>> 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 
>> 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/

Responder a