Pesquisa de Objetos no PAS e/ou DFM

444 views
Skip to first unread message

Acauan Ramos

unread,
Sep 23, 2009, 8:34:42 PM9/23/09
to DUG-RS - Delphi Users Group Rio Grande do Sul
Boa noite pessoal,

alguém já precisou pesquisar por objetos específicos emum projeto ou
diretório?
Exemplo, encontrar onde existe um captio com conteúdo igual ou
parcial à determinado valor (Caption = '%Acauan%')...
Existe forma de realizar esta pesquisa? Pergunto pois ao procurar
por Caption apenas não serve, o número de ocorrência seria muito alto,
e mesmo assim, pesquisando pela literal 'Acauan', estaríamos
encontrando qualquer outra ocorrência (Name = 'Acauan', TAcauan = class
(), Text = 'Acauan, etc').
O ideal para o exemplo acima seria afo do tipo, pesquisar os objetos
"TLabel" que possuam valor inicializado com 'Acauan' ou que sejam
atribuídos em código (lblNomeCliente := 'Acauan';).

Se existir alguma ferramenta que resolva este exemplo, ou parte
dele, gostaria de saber qual.

Desde já obrigado.

Att,
Acauan Ramos.

Gilberto Dessbesell Jr

unread,
Sep 24, 2009, 7:01:20 AM9/24/09
to dug...@googlegroups.com
Acauan,

estou sem Delphi aqui para testar, mas acho que uma expressao regular pode te ajudar.
Na opcao de busca do proprio Delphi, marque a opcao de expressoes regulares e pesquise por "\.caption*acauan*" (sem as aspas).

Acho que adaptando melhor a expressao vai chegar ao resultado esperado.

[]s

2009/9/23 Acauan Ramos <acaua...@gmail.com>



--
Gilberto Dessbesell Jr.

Armando Bagattini

unread,
Sep 24, 2009, 9:58:27 AM9/24/09
to dug...@googlegroups.com
tem que procurar nos arquivos .DFM

2009/9/24 Gilberto Dessbesell Jr <gdb...@gmail.com>



--
Armando Bagattini Filho
Desenvolvendo em Delphi 7 e Firebird

Jackson [ Condata Informática ]

unread,
Sep 24, 2009, 10:02:30 AM9/24/09
to dug...@googlegroups.com
tem sim, porem q instalar o GExpert.

Jefferson Follmann

unread,
Sep 24, 2009, 10:14:56 AM9/24/09
to dug...@googlegroups.com
Digamos que tu tem um projeto que tenha o diretorio raiz + subdiretorios da tua aplicação.
Tu precisaria pesquisar dentro de todos os arquivos .dfm?
apenas em um especifico?

Outra duvida: qual seria o retorno da tua consulta?
Um arquivo com o nome dos arquivos que tem esssa ocorrencia "Acauan" no caption?

Eu acho que com Regular Expression(RE) + Uso de flag tu resolve essa parada.
Talvez utilizando o gVim + RE.

Apenas me diz a tua saida +- pra mim entender.

Forte abraço Acauan!
=D

2009/9/24 Armando Bagattini <abaga...@gmail.com>



--
O único erro da natureza, é a incompetência não doer.
Linux User #490529.
Linux: Live FREE or DIE!

Acauan Ramos

unread,
Sep 25, 2009, 12:08:13 AM9/25/09
to DUG-RS - Delphi Users Group Rio Grande do Sul
Opa, fala Jefferson... blz!

As dicas até aqui já ajudaram, vou dar uma estudada neste conceito de
"REGEX".
Mas acho que no meu exemplo não não funciona, vou tentar esclarecer
mais alguns pontos do meu objetivo:

Ferramenta em uso -> D4, D5, D7 ou D2007;
Verificar em: .pas e .dfm (conforme exemplos abaixo);
Resultado esperado: identificar as ocorrências, exibir o arquivo e
linha onde foi encontrado a ocorrência (igual o search do Delphi e do
GExpert);

Exemplo, se eu desejo encontrar os objetos da classe TLabel com
Atributo Caption = 'Acauan', no dfm abaixo fica claro que apenas
"Caption = Acauan" não funcionaria, pois nos resultados seriam
apresentados também objetos TPanel, TForm1 e TButton.


object Form1: TForm1
Left = 0
Top = 0
Caption = 'Acauan'
ClientHeight = 164
{...}
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 40
Top = 119
Width = 36
Height = 13
Caption = 'Acauan'
end
object Button1: TButton
Left = 40
Top = 15
Width = 75
Height = 25
Caption = 'Acauan'
TabOrder = 0
end
object Panel1: TPanel
Left = 40
Top = 55
Width = 185
Height = 41
Caption = 'Acauan'
TabOrder = 1
end
end



On 24 set, 11:14, Jefferson Follmann <jeff.follm...@gmail.com> wrote:
> Digamos que tu tem um
> projeto que tenha o diretorio raiz + subdiretorios da tua aplicação.
> Tu precisaria pesquisar dentro de todos os arquivos .dfm?
> apenas em um especifico?
>
> Outra duvida: qual seria o retorno da tua consulta?
> Um arquivo com o nome dos arquivos que tem esssa ocorrencia "Acauan" no
> caption?
>
> Eu acho que com Regular Expression(RE) + Uso de flag tu resolve essa parada.
> Talvez utilizando o gVim + RE.
>
> Apenas me diz a tua saida +- pra mim entender.
>
> Forte abraço Acauan!
> =D
>
> 2009/9/24 Armando Bagattini <abagatt...@gmail.com>
>
>
>
>
>
> > tem que procurar nos arquivos .DFM
>
> > 2009/9/24 Gilberto Dessbesell Jr <gdb...@gmail.com>
>
> >> Acauan,
>
> >> estou sem Delphi aqui para testar, mas acho que uma expressao regular pode
> >> te ajudar.
> >> Na opcao de busca do proprio Delphi, marque a opcao de expressoes
> >> regulares e pesquise por "\.caption*acauan*" (sem as aspas).
>
> >> Acho que adaptando melhor a expressao vai chegar ao resultado esperado.
>
> >> []s
>
> >> 2009/9/23 Acauan Ramos <acauanra...@gmail.com>
> Linux: Live FREE or DIE!- Ocultar texto das mensagens anteriores -
>
> - Mostrar texto das mensagens anteriores -

Jefferson Follmann

unread,
Sep 25, 2009, 8:30:49 AM9/25/09
to dug...@googlegroups.com
ahh bom, agora entendi a questão da tua saida esperada.

cara, eu utilizo direto o GExpert aqui. Notei que no "Grep Search" ( ferramenta de pesquisa no modo find in all files directory ) temos sim a possibilidade de pesquisa via Regular Expression (RE).

Estou estudando alguma coisa para linux ( sim, fui pro lado negro da força :P ) de RE.
Para isso, pode te indicar livros do aurélio: http://www.piazinho.com.br/
Até cheguei a comprar este livro acima. Muitooo bom por sinal.

Caso tu não queira comprar o livro, na internet ele disponibilizou uma versão para consulta rápida que acho que pode te ajudar: http://guia-er.sourceforge.net/copyright.html


Importante citar: Eu não sei se o delphi trabalha com as mesma RE do linux. Nunca utilizei essa poderoza ferramenta para busca no delphi, apenas no linux. ( acredito que o pessoal dá lista pode dar uma auxiliada quanto a isso ).

Alguém já teve alguma experiencia com as RE, nas ferramentas de search do delphi?

Pra tentar te ajudar, dei mais uma pesquisada por aqui e notei que a documentação de expressões regulares para search no delphi é meio escassa ( pra não dizer nenhuma ).
Mas dei uma olhada também no HELP do delphi e temos alguma coisa.
Dá um F1 ae no teu delphi e cata por "Brief regular expressions". Em "see also" temos mais algumas coisas para search in files.

De hora é isso que consegui. Se souber de mais alguma coisa, posto por aqui.
Acho que é isso cara.
Grande abraço!


2009/9/25 Acauan Ramos <acaua...@gmail.com>

Gaspar Santos

unread,
Sep 25, 2009, 8:40:54 AM9/25/09
to dug...@googlegroups.com
Se fores partir para o uso efetivo de regular expressions na solução do teu problema,
segue ai a indicação de uma ferramenta que serve para avaliar/validar uma determinada expresssão que pretendas utilizar.
 
Gaspar Santos

 
2009/9/25 Jefferson Follmann <jeff.f...@gmail.com>
Reply all
Reply to author
Forward
0 new messages