Utilizando expressões regulares para substituir strings no PowerBuilder

Vimos em posts anteriores (Replace) como substituir textos no PowerBuilder, mas existe uma forma não-nativa que é mais flexível do que as demonstradas até o momento. O fonte abaixo demonstra esta funcionalidade.

// Argumentos:  -> .string as_texto       
//                  string as_procurar     
//                  string as_substitui_por 
// Retorno...: .
//
//////////////////////////////////////////////////////////////////////////

integer li_return
string ls_resultado

OLEObject oleRegExp
oleRegExp = CREATE OLEObject
li_return = oleRegExp.ConnectToNewObject("VBScript.RegExp")
if li_return <> 0 then
	MessageBox("Erro: String Replace!", "Erro na substituição!~n~rFavor habilitar o Windows Script Host.", StopSign!)
else
	oleRegExp.Global = True
	oleRegExp.IgnoreCase = True
	oleRegExp.Pattern = as_procurar
	ls_resultado= oleRegExp.Replace(as_texto, as_substitui_por)
end if

if IsValid(oleRegExp) then
	oleRegExp.DisconnectObject()
	Destroy oleRegExp
end if

return ls_resultado

Explicando o fonte acima:

  • É criado um objeto Ole para nos conectarmos ao VBScript.RegExp;
  • Este objeto é utilizado, chamando a função Replace (do VB Script);
  • A string com os valores substituídos é retornada;

 

O exemplo é bastante simples. Caso esteja preocupado com compatibilidade, o VB Script é suportado a partir do Windows 98 e NT. Caso você utilize o windows 95, terá que baixar um pacote separado de suporte. Sendo assim, não há problemas se você estiver entre o Windows 98 e o Windows 10. 😉

 

Agradecimentos ao Armando Jr pela contribuição.

The following two tabs change content below.
Arquiteto de Software e Desenvolvedor Backend (quase Fullstack), geralmente trabalho com C#, PowerShell, Python, Golang, bash e Unity (esse é mais por hobby). Estou sempre buscando algo novo para aprender, adicionando novas ferramentas ao meu cinto de utilidades.
Posted in Dev, PowerBuilder and tagged , , , , , , , , .