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.