[firebase-br] Localizar caracter em uma string
Jeferson Oliveira
jefersonfoliveira em gmail.com
Qui Out 26 18:53:58 -03 2006
Rapaz que coincidência!
Logo após postar a mensagem sobre a TbUDF, precisei utilizar o recurso
de identificar a posição de um string em outro.
Como evito utilizar UDFs e não quero distribuir mais um arquivo
(tbudf.dll) com meu sistema, criei uma SP para isso.
Contraditoriamente, talvez, na SP utilizo duas UDFs (strlen e
substrlen), por comodidade e por já ser completamente dependente
dessas duas. De toda forma representam um mal menor, já que os módulos
que as contém (ib_udf) já faz parte da instalação padrão do Firebird.
Segue o código:
create procedure SP_Pos_SubStr (
SubStr varchar(64),
Str varchar(2048))
returns (
POS integer)
as
declare variable I integer;
begin
Pos = 0;
i = 1;
while (i <= (StrLen(:Str) - StrLen(:SubStr) + 1)) do
begin
if (SubStrLen(:Str, i, StrLen(:SubStr)) = :SubStr) then
begin
Pos = i;
break;
end
i = i + 1;
end
suspend;
end
Abraço!
Jeferson Oliveira
Mais detalhes sobre a lista de discussão lista