Extrair Números de um campo Char

Discussão em 'Progress 4GL' iniciado por Caique Caires Santos, Fevereiro 24, 2015.

  1. Caique Caires Santos

    Caique Caires Santos Sem Pontuação

    Prezada (0), bom dia!

    Estou desenvolvendo um relatório e preciso extrair apenas os números do campo processo-exp.nr-proc-exp.

    Alguém poderia me ajudar?

    Obrigado!
  2. jc01

    jc01 Membro Participativo

    Não sei se é a melhor forma, pois estou ainda engatinhando no Progress...

    Código:
    DEF VAR palavra AS CHARACTER FORMAT "x(40)" INITIAL "AB5T2Y45D85U6J56E" NO-UNDO.
    DEF VAR i AS INTEGER NO-UNDO.
    DEF VAR numero AS CHARACTER FORMAT "x(40)" NO-UNDO.
    DEF VAR teste AS INTEGER NO-UNDO.
     
    DO i = 1 TO LENGTH(palavra):
        ASSIGN teste = INTEGER(substring(palavra, i, 1)) NO-ERROR.
        IF NOT ERROR-STATUS:ERROR THEN
            ASSIGN numero = numero + substring(palavra, i, 1).
    END.
     
    DISPLAY numero.
    Última edição: Fevereiro 24, 2015
    arcosta, renato.schlogel e Agnaldo curtiram isso.
  3. Caique Caires Santos

    Caique Caires Santos Sem Pontuação

    Funcionou muito bem.
    Muito Obrigado.
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    nunca imaginei usar o controle de erros pra isso, parabens pela solução criativa
  5. jc01

    jc01 Membro Participativo

    Posso saber como você faria? É legal ter essa troca de experiências. Eu sei muito pouca coisa de Progress, apenas li algumas apostilas.
  6. Caique Caires Santos

    Caique Caires Santos Sem Pontuação

    Estava pensando em fazer usando a função substring, mas não estava dando certo.
    Assing variavel = substring(<campo char>, <posicao inicial>, <tamanho>).

Compartilhe esta Página