Mudar texto em todos os prgs da pasta

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mudar texto em todos os prgs da pasta

Mensagem por rubens »

Bom dia...

Preciso mudar o Texto "Janela(" para "Janela( ProcName()," em todos prgs da pasta.
Pelo Xdev Não achei opção...
Pelo HbIde achei opção mas não consegui fazer funcionar.
Alguém sabe como fazer pelo HBIDE ou por outra ferramenta?

Obrigado
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Mudar texto em todos os prgs da pasta

Mensagem por Jairo Maia »

Olá Rubens,

Veja se ajuda:

NOTA: Use uma única vez para cada novo texto informado e verifique. Se voltar a rodar o utilitário duplica o novo texto, ok?

Código: Selecionar todos

Function Main( lDelbk )

 Local x, aDirect1, aDir1:={}, cMsg, cArq1, cArq2, cNewTexto
 
  /*
   Definir aqui o Texto existente e o Novo Texto...
 */
 Local cTexto1 := "Janela("
 Local cTexto2 := "Janela( ProcName(),"

 If lDelbk != Nil .And. Upper( lDelbk ) = "/Y"
  ! DEL *.bak
 ElseIf File( "*.BAK" )
  cMsg:="Arquivos com extensäo .BAK existente!;"
  cMsg+="Faça backup e apague para continuar."
  HB_Alert( cMsg )
  Return Nil
 EndIf

 CLEA SCREEN

 aDirect1 := Directory( "*.PRG" )
 AEval( aDirect1, { | cPrg | AaDd( aDir1, cPrg[1] ) } )

 For x:=1 To Len( aDir1 )

  cArq1 := aDir1[x]
 
  If Upper( cArq1 ) = "MUDATEXTO.PRG"
   Loop   // se for esse arquivo, não altera...
  EndIf
 
  @ 5,2 say spac(50)
  @ 5,2 say "Trabalhando arquivo: " + cArq1

  cNewTexto := Hb_MemoRead( cArq1 )
 
  cArq2 := StrTran( Upper( cArq1 ), ".PRG", ".BAK" )
 
  Hb_MemoWrit( cArq2, cNewTexto )  // salva backup do arquivo antes de alterar
 
  cNewTexto := StrTran( cNewTexto, cTexto1, cTexto2 )  // altera o arquivo com CASE SENSITIVE
 
  Hb_MemoWrit( cArq1, cNewTexto )  // salva o arquivo com as alterações
 
 Next

 @ 7,2 say " "

Return Nil
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Mudar texto em todos os prgs da pasta

Mensagem por marcosgambeta »

Rubens,

Eu uso o grepWin para esta e outras tarefas:

https://tools.stefankueng.com/grepWin.html
Atenciosamente,
Marcos Antonio Gambeta
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Mudar texto em todos os prgs da pasta

Mensagem por Claudio Soto »

Otra alternativa es usar el editor de texto NotePad++
Opción del menú Search and Replace in Files
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mudar texto em todos os prgs da pasta

Mensagem por JoséQuintas »

Porque não aproveita e cria uma rotina pra não precisar indicar isso?
Por exemplo, uso do DoPrg() e a variável m_Prog

https://github.com/JoseQuintas/JoseQuin ... in/jpa.prg
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder