Re: [delphi-br] [DICA] +Funções para strings

2008-10-16 Por tôpico Ricardo Cabral
isso tá redendo !!! rs

Abraços,

Ricardo Cabral

--- Em qui, 16/10/08, Onjahyr - GMAIL <[EMAIL PROTECTED]> escreveu:

De: Onjahyr - GMAIL <[EMAIL PROTECTED]>
Assunto: Re: [delphi-br] [DICA] +Funções para strings
Para: delphi-br@yahoogrupos.com.br
Data: Quinta-feira, 16 de Outubro de 2008, 17:02






Que é que eu tenho a ver com a conversa rapá??? Eu até pedi para ele 
continuar!!!

Luiz ESCobar escreveu:
>
> RUBEM suas dicas e idéias sempre seram muito bem vindas...
> O João e o Onjahyr só tem opniões diferentes.. .
> Não acho que deva parar...
> []s
>
> Luiz Escobar - Analista/Desenvolve dor:
> WEB - HTML/JavaScript/ PHP/MySQL
> WINDOWS - Delphi/ASSEMBLY/ MySQL/xBase
> SERVIDORES - CNA IntraNetWare4. 11, LINUX-(RedHat9/ Suse11), Windows 2K/XP
> HARBOUR  - - - - - -
> Borland C++ 5.5.1 (32 bit)
> Harbour 1.0.1 Intl. (Rev. 9429)
> xHarbour Compile build 1.1.0 (Simplex)
> Harbour MiniGUI 1.5 Extended Edition (Build 57d) - 2008.10.10
>  - - - - - -
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
 














  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]



Re: [delphi-br] [DICA] +Funções para strings

2008-10-16 Por tôpico Luiz ESCobar
Só no RAPÁ! a conversa já morreu...
[]s

Luiz Escobar - Analista/Desenvolvedor:
WEB - HTML/JavaScript/PHP/MySQL 
WINDOWS - Delphi/ASSEMBLY/MySQL/xBase
SERVIDORES - CNA IntraNetWare4.11, LINUX-(RedHat9/Suse11), Windows 2K/XP
HARBOUR 
--
Borland C++ 5.5.1 (32 bit)
Harbour 1.0.1 Intl. (Rev. 9429) 
xHarbour Compile build 1.1.0 (Simplex)
Harbour MiniGUI 1.5 Extended Edition (Build 57d) - 2008.10.10
---




From: Onjahyr - GMAIL 
Sent: Thursday, October 16, 2008 4:02 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] [DICA] +Funções para strings


Que é que eu tenho a ver com a conversa rapá??? Eu até pedi para ele 
continuar!!!

Luiz ESCobar escreveu:
>
> RUBEM suas dicas e idéias sempre seram muito bem vindas...
> O João e o Onjahyr só tem opniões diferentes...
> Não acho que deva parar...
> []s
>
> Luiz Escobar - Analista/Desenvolvedor:
> WEB - HTML/JavaScript/PHP/MySQL
> WINDOWS - Delphi/ASSEMBLY/MySQL/xBase
> SERVIDORES - CNA IntraNetWare4.11, LINUX-(RedHat9/Suse11), Windows 2K/XP
> HARBOUR --
> Borland C++ 5.5.1 (32 bit)
> Harbour 1.0.1 Intl. (Rev. 9429)
> xHarbour Compile build 1.1.0 (Simplex)
> Harbour MiniGUI 1.5 Extended Edition (Build 57d) - 2008.10.10
> --
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 


 

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] [DICA] +Funções para strings

2008-10-16 Por tôpico Ricardo Cabral
Leia as dicas quem quiser. Afinal o forum é democrático !

Abraços,

Ricardo Cabral

--- Em qui, 16/10/08, Luiz ESCobar <[EMAIL PROTECTED]> escreveu:

De: Luiz ESCobar <[EMAIL PROTECTED]>
Assunto: Re: [delphi-br] [DICA] +Funções para strings
Para: delphi-br@yahoogrupos.com.br
Data: Quinta-feira, 16 de Outubro de 2008, 15:43






RUBEM suas dicas e idéias sempre seram muito bem vindas...
O João e o Onjahyr só tem opniões diferentes.. .
Não acho que deva parar...
[]s

Luiz Escobar - Analista/Desenvolve dor:
WEB - HTML/JavaScript/ PHP/MySQL 
WINDOWS - Delphi/ASSEMBLY/ MySQL/xBase
SERVIDORES - CNA IntraNetWare4. 11, LINUX-(RedHat9/ Suse11), Windows 2K/XP
HARBOUR  - - - - - -
Borland C++ 5.5.1 (32 bit)
Harbour 1.0.1 Intl. (Rev. 9429) 
xHarbour Compile build 1.1.0 (Simplex)
Harbour MiniGUI 1.5 Extended Edition (Build 57d) - 2008.10.10
 - - - - - -

[As partes desta mensagem que não continham texto foram removidas]

 














  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]



Re: [delphi-br] [DICA] +Funções para strings

2008-10-16 Por tôpico Luiz ESCobar
RUBEM suas dicas e idéias sempre seram muito bem vindas...
O João e o Onjahyr só tem opniões diferentes...
Não acho que deva parar...
[]s


Luiz Escobar - Analista/Desenvolvedor:
WEB - HTML/JavaScript/PHP/MySQL 
WINDOWS - Delphi/ASSEMBLY/MySQL/xBase
SERVIDORES - CNA IntraNetWare4.11, LINUX-(RedHat9/Suse11), Windows 2K/XP
HARBOUR 
--
Borland C++ 5.5.1 (32 bit)
Harbour 1.0.1 Intl. (Rev. 9429) 
xHarbour Compile build 1.1.0 (Simplex)
Harbour MiniGUI 1.5 Extended Edition (Build 57d) - 2008.10.10
---

[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] [DICA] +Funções para strings

2008-10-16 Por tôpico fabio giro
Faça isso não. Continue enviando dicas. São sempre importantes.

--- Em qui, 16/10/08, Rubem Nascimento da Rocha <[EMAIL PROTECTED]> escreveu:

De: Rubem Nascimento da Rocha <[EMAIL PROTECTED]>
Assunto: RE: [delphi-br] [DICA] +Funções para strings
Para: delphi-br@yahoogrupos.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, k.

Joao Morais escreveu:
>
> Fala Rubem!
>
> 2008/10/15 Rubem Nascimento da Rocha  >:
>>
>> 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  >:
>>>
>>>
>>> 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 w

Re: [delphi-br] [DICA] +Funções para strings

2008-10-16 Por tôpico Joao Morais
2008/10/15 Onjahyr - GMAIL <[EMAIL PROTECTED]>:
> Concordo com o João, não vamos reinventar a roda, k.

Não é o caso Robson. O Rubem colocou implementações que não existem na
rtl do delphi e eu palpitei com melhorias que eu julgo pertinente.

No entanto isso vale também para implementações que já existem na vcl,
como tdataset. Eu escrevi um framework mvp e não uso um único
decendente de tdataset. E hoje, analisando como eu escrevo um form e
como eu escrevia antes desse framework, fico tão certo de que não
reinventei roda alguma quanto 2 e 2 são 4. Ou 22. Há controvérsia =)

--
Joao Morais


Res: RE: [delphi-br] [DICA] +Funções para strings

2008-10-15 Por tôpico Onjahyr - GMAIL
Rubem, não se ofenda! Não foi minha intensão.
Já conversamos e sabes que eu sou daqueles que vou atrás do que eu 
quero, e "na área que já metemos a cabeça" (I/O), são códigos pouco 
"bem-vindos".

Todas as dicas que você já postou eu sempre guardo aqui para futuras 
consultas... Continue, não ligue prá isso, estamos em uma lista e deves 
compreender que todo mundo pode opinar... Creio que o João concorda que 
importa sabermos como se faz uma coisa de diversas formas e pegar aquela 
que mais agradar... Você deu uma dica, o João deixou uma outra maneira 
de se fazer, outra pessoa coloca outro parecer e assim faz uma comunidade...

Blz.

Rubem Nascimento da Rocha escreveu:
>
>
> É, 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 <mailto:delphi-br%40yahoogrupos.com.br>
> From: [EMAIL PROTECTED] <mailto:onjahyr%40gmail.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, k.
>
>   


Res: RE: [delphi-br] [DICA] +Funções para strings

2008-10-15 Por tôpico Onjahyr - GMAIL
Não se ofenda! Não foi minha intensão. Já conversamos e sabes que eu sou 
daqueles que vou atrás do que eu quero, e "na área que já metemos a 
cabeça", são códigos pouco "bem-vindo".
Todas as dicas que você postou eu sempre guardo aqui para futuras 
consultas... Continue, não ligue prá isso, estamos em uma lista e deves 
compreender que todo mundo pode opinar... Creio que o João concorda que 
importa sabermos como se faz uma coisa de diversas formas e pegar aquela 
que mais agradar... Você deu uma dica, o João deixou uma outra maneira 
de se fazer, outra pessoa coloca outro parecer e assim faz uma comunidade...

Blz.

Rubem Nascimento da Rocha escreveu:
>
>
> É, 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 <mailto:delphi-br%40yahoogrupos.com.br>
> From: [EMAIL PROTECTED] <mailto:onjahyr%40gmail.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, k.
>
> 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 d

RE: [delphi-br] [DICA] +Funções para strings

2008-10-15 Por tôpico Rubem Nascimento da Rocha

É, 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, k.

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/

Re: [delphi-br] [DICA] +Funções para strings

2008-10-15 Por tôpico Joao Morais
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


RE: [delphi-br] [DICA] +Funções para strings

2008-10-15 Por tôpico Rubem Nascimento da Rocha

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

Re: [delphi-br] [DICA] +Funções para strings

2008-10-15 Por tôpico Joao Morais
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 >
>
>
>
>