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.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022