1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida Buscar texto em String

Discussão em 'Progress 4GL' iniciado por brunoowr, Novembro 5, 2019.

  1. brunoowr

    brunoowr Membro Participativo

    Estou com dúvidas para fazer uma gambiarra em um código.

    Dentro de um campo de observação tenho as seguintes informações:
    "PEDIDO 4500533864
    NF 8525
    LOTE DE RETORNO 0022307440"

    Preciso pegar somente o número do lote, pra isso pensei em pegar a posição da palavra "retorno", somar as casas decimais e dar substring. Porém não sei qual a melhor forma para fazer isso.
  2. brunoowr

    brunoowr Membro Participativo

    Da seguinte forma funciona, mas acredito que deva ter alguma forma mais simples

    HTML:
    def var c-observacao as char no-undo.
       
    for each ped-venda
       where ped-venda.nr-pedcli = "0021859340" no-lock.
    
        if (ped-venda.observacoes matches("*" + "RETORNO" + "*") ) then do:
            assign c-observacao = replace(ped-venda.observacoes," ",",").
            assign c-observacao = replace(c-observacao,chr(10),",").
    
            MESSAGE entry((lookup("RETORNO",c-observacao) + 1), c-observacao)
                VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
        end.
    end.
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Eu recomendaria você fazer um replace removendo as quebras de linha e pegar pelo ENTRY.

    Exemplo:
    Código:
    DEF VAR texto AS CHAR.
    DEF VAR xi AS INTEGER.
    
    texto = "PEDIDO 4500533864" + CHR(13) +
            "NF 8525" + CHR(13) +
            "LOTE DE RETORNO 0022307440".
    
    texto = REPLACE(texto,CHR(13)," ").
    texto = REPLACE(texto,CHR(10)," ").
    texto = REPLACE(texto,"  "," "). /* remove espaços extras */
    
    DO xi = 1 TO NUM-ENTRIES(texto," ").
       IF TRIM(ENTRY(xi,texto," ")) = "RETORNO" THEN DO:
          xi = xi + 1.
          MESSAGE ENTRY(xi,texto," ")
              VIEW-AS ALERT-BOX INFO BUTTONS OK.
       END.
    END.
    
  4. brunoowr

    brunoowr Membro Participativo

    Funcionou também, muito obrigado

Compartilhe esta Página