Utilizando expressões regulares para substituir strings no PowerBuilder
![Utilizando expressões regulares para substituir strings no PowerBuilder](/imgs/featured_image_default.png)
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.