Fórum Como fazer busca em Units de um sistema legado? #413189
24/02/2012
0
Pjava
Curtir tópico
+ 0Posts
24/02/2012
Gustavo Bretas
Você conhece o NotePad++? Quando eu tenho que fazer alguma pesquisa mais ampla no código (.pas e .dfm) eu uso ele!
Gostei + 0
24/02/2012
Pjava
Gostei + 0
24/02/2012
Joel Rodrigues
Os arquivos estão em pastas conhecidas?
Gostei + 0
24/02/2012
Joel Rodrigues
Segue um pequeno exemplo em C# de como varrer os arquivos de um diretório e verificar se cada arquivo contém um certo texto:
---
foreach(String s in Directory.GetFiles(@C:\Sistemas\Exemplo))
{
FileInfo fi = new FileInfo(s);
if (fi.Extension.ToUpper().Equals(.PAS))
{
if(File.ReadAllText(s).Contains(texto_procurado))
listBox1.Items.Add(s);//path do arquivo que contem o texto
}
}
---
Gostei + 0
24/02/2012
Gustavo Bretas
Por isso que eu disse que ia ser complicado! rsrs
A questão é que vc vai pesquisar a tabela, tranquilo, mas depois de ver em quais componentes de acesso estão as tabelas que vc quer (Table, Query), vc vai precisar procurar onde é usado esses componentes, entende? Se vc usar DataModule fica mais complicado um pouco pq vc pode ter referenciado os componentes em N telas, se vc user Stored Procedure complica mais um pouco aidna pq terá que fazer uma pesquisa nos script das Stored Procedure e depois procurá-las no componentes, e se usar ClientDataset da pra imaginar né? rsrs
Eu já tive que fazer algo parecido com isso, mas o sistema erá pequeno, e o Notepad++ me ajudou bastante... rsrs!
Mas da pra fazer, qual o banco de dados que vc usa? Já adianto que no SQL Server vc pega o nome das tabelas na tabela SysObjects (Eu acho que compara T no campo XTYPE), no Firebird e umas das RDB$RELATION_FIELDS (Compara com o campo RDB$SYSTEM_FLAG = 0, se não me engano), no Oracle é na tabela DBA_TABLES!
PJava, te desejo sorte!
Gostei + 0
26/02/2012
Pjava
Gostei + 0
27/02/2012
Gustavo Bretas
Sim, a lógica que vc esta pensando funciona, mas eu acrescentaria os .dfm, pq no meu caso eu não costumo atribuir o select às Querys em modo de execução!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)