Utilizando expressões regulares para substituir strings no PowerBuilder

Utilizando expressões regulares para substituir strings no PowerBuilder

Overview

Já exploramos como alterar textos no PowerBuilder em publicações anteriores, mas hoje vamos mergulhar em um método alternativo que esbanja flexibilidade. Preparados para descobrir como o uso inovador do VBScript.RegExp pode revolucionar a forma como lidamos com substituição de strings? Este post é para você que busca soluções eficientes e compatíveis com diversas versões do Windows. Uma dica especial de Armando Jr. vem para somar conhecimento e prática. Vamos lá!

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.