[firebase-br] função STUFF (SOLUÇÃO)

Hélio Oliveira hpensador em gmail.com
Qui Set 13 16:54:40 -03 2018


Claro!

Aproveita e adiciona esses comentários na mesma.


    /* Função criada para substituir a UDF_STUFF que não tem suporte ao 
FB 64 Bits                                           */
    /* WW_Texto - texto que terá seu valor a adição de outro texto 
(WW_Insert) ou a remoção de alguns caracteres (WW_Delete) */
    /* WW_Start - posição inicial onde (WW_Texto) terá a adição ou 
remoção de alguns caracteres.                             */
    /* Função desenvolvida com base no que está descrito em: 
http://www.oohg.org/cl53/nga2123.html                           */



Em 13/09/2018 09:47, Carlos H. Cantu escreveu:
> Posso publicar no site?
> 
> PS: O SUSPEND Não é necessário, visto que essa não é uma procedure
> selecionável.
> 
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
> 
> HO> Bom dia Colegas!
> 
> HO> Com base no que está descrito aqui
> HO> http://www.oohg.org/cl53/nga2123.html
> HO> criei a função abaixo. Nos testes feitos com os valores do exemplo do
> HO> material encontrado no link acima, a mesma está funcionando 100% - deixo
> HO> aqui como uma contribuição.
> 
> HO> Fiz uma SP por estar usando o FB 2.5 neste projeto, se fosse no 3.0
> HO> seria uma Function.
> 
> HO> CREATE PROCEDURE STUFF (
> HO>     WP_texto VARCHAR(1000),
> HO>     WP_Start INTEGER,
> HO>     WP_Delete INTEGER,
> HO>     WP_Insert VARCHAR(100))
> HO> RETURNS (
> HO>     WW_Stuff VARCHAR(1000) )
> HO> AS
> HO>     DECLARE VARIABLE WW_P1 VARCHAR(1000);
> HO>     DECLARE VARIABLE WW_P2 VARCHAR(1000);
> HO> BEGIN
> HO>     WW_Stuff = '';
> HO>     if (WP_Delete > 0) then begin
> HO>        WW_P1 = SUBSTRING(WP_texto FROM 1 FOR WP_Start-1);
> HO>        WW_P2 = SUBSTRING(WP_texto FROM (WP_Start+WP_Delete) FOR
> HO> CHAR_LENGTH(WP_texto));
> HO>     end else if (WP_Delete = 0) then begin
> HO>        WW_P1 = SUBSTRING(WP_texto FROM 1 FOR WP_Start-1);
> HO>        WW_P2 = SUBSTRING(WP_texto FROM WP_Start FOR CHAR_LENGTH(WP_texto));
> HO>     end
> HO>     WW_Stuff = WW_P1 || WP_Insert || WW_P2;
> HO>     SUSPEND;
> HO> END;
> 
> 
> HO> Em 12/09/2018 13:49, Hélio Oliveira escreveu:
>>> Boa tarde Colegas!
>>>
>>> Temos alguma função nativa no Firebird que faço o mesmo que essa função
>>> do C http://www.oohg.org/cl53/nga2123.html.
>>>
>>> [ ]'s,
>>>
>>> Hélio
>>>
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas:
>>> http://www.firebase.com.br/pesquisa_lista.html
>>>
> 
> 
> 
> HO> ______________________________________________
> HO> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> HO> Para saber como gerenciar/excluir seu cadastro na lista, use:
> HO> http://www.firebase.com.br/fb/artigo.php?id=1107
> HO> Para consultar mensagens antigas:
> HO> http://www.firebase.com.br/pesquisa_lista.html
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html
> 






Mais detalhes sobre a lista de discussão lista