Olá pessoal, Eu já tive lá meus desentendimentos com o Rubem, mas nada de guardar rancor, isso faz mal para o fígado e é comprovado cientificamente. As dicas são sempre bem vindas, inclusive já usei várias delas. Não discordo do João quando ele citou uma maneira de melhorar o código, é aquela velha história: "... quanto mais fácil melhor!", pois nossos clientes têm uma mania de querer as coisas para ontem. (Risos) Mas é isso, na boa, o que passou já passou e continue a postar as dicas, às vezes alguém esta quebrando cabeça a dias, e de repente alguém posta uma dica que resolve o problema, seja um iniciante ou seja um expert. Notem uma coisa, esta resposta não é desafio, crítica, gozação e etc., nada disso e nem derivados disso, minha intenção e fazer o brothers ficarem na boa e o Rubem continuar portando as dicas, pois elas são muito úteis.
________________________________ Um abraço! Silvio Clécio Contatos/Blog Skype: silvioprog Yahoo! Messenger: [EMAIL PROTECTED] MSN (Hotmail): [EMAIL PROTECTED] BlogSpot: http://silvioclecio.blogspot.com/ ----- Mensagem original ---- De: fabio giro <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 16 de Outubro de 2008 11:28:12 Assunto: RE: [delphi-br] [DICA] +Funções para strings Faça isso não. Continue enviando dicas. São sempre importantes. --- Em qui, 16/10/08, Rubem Nascimento da Rocha <djpardalrocha@ hotmail.com> escreveu: De: Rubem Nascimento da Rocha <djpardalrocha@ hotmail.com> Assunto: RE: [delphi-br] [DICA] +Funções para strings Para: [EMAIL PROTECTED] os.com.br Data: Quinta-feira, 16 de Outubro de 2008, 1:23 É, 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: [EMAIL PROTECTED] os.com.br From: [EMAIL PROTECTED] com 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 <djpardalrocha@ hotmail.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: [EMAIL PROTECTED] os.com.br >> From: [EMAIL PROTECTED] 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 <djpardalrocha@ hotmail.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 Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]