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

SImular Search do Pro-Path

Discussão em 'Progress 4GL' iniciado por reissobr, Setembro 1, 2014.

  1. reissobr

    reissobr Membro Participativo

    Pessoal, eu consigo simular a opçao search que existe lá no Pro Path ?

    Tentei utilizar a funcao SEARCH do progress, mas ela me tras somente a primeira ocorrencia do programa no propath, e pelo search do pro path, consigo ver todas as localizações de um programa.

    O que eu quero é conseguir enxergar, dos programas que tenho versao no diretório do sistema e também versao no diretório de quarentena, se tenho mais de uma versao na quarentena, e qual a versao mais nova, se ainda é a da quarentena ou se já tenho uma versao mais nova dos ultimos pacotes.

    Att;
    Russo.
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Olá Russo,

    Fiz este exemplo aqui, ai você trabalha do jeito que precisa:
    PHP:
    DEFINE TEMP-TABLE tt-lista NO-UNDO
        FIELD i
    -seq AS INTEGER
        FIELD c
    -arquivo AS CHARACTER FORMAT "x(100)"
        
    FIELD mod-date  AS DATE FORMAT "99/99/9999"
        
    FIELD mod-time  AS CHAR FORMAT "X(8)".

    DEFINE VARIABLE i-count    AS INTEGER     NO-UNDO.
    DEFINE VARIABLE ia-seq     AS INTEGER     NO-UNDO.
    DEFINE VARIABLE c-pesquisa AS CHARACTER   NO-UNDO FORMAT "x(60)".
    DEFINE VARIABLE c-pesq-r   AS CHARACTER   NO-UNDO FORMAT "x(60)".
    DEFINE VARIABLE c-search   AS CHARACTER   NO-UNDO.

    UPDATE c-pesquisa.
    ASSIGN ia-seq 0.                         
    DO  i-count 1 TO NUM-ENTRIES(PROPATH):
        IF 
    R-INDEX(c-pesquisa,".py") > 0 THEN
            ASSIGN c
    -pesq-SUBSTRING(c-pesquisa,1,R-INDEX(c-pesquisa,".py") - 1) + ".r".
        ELSE IF 
    R-INDEX(c-pesquisa,".p") > 0 THEN
            ASSIGN c
    -pesq-SUBSTRING(c-pesquisa,1,R-INDEX(c-pesquisa,".p") - 1) + ".r".
        ELSE IF 
    R-INDEX(c-pesquisa,".w") > 0 THEN
            ASSIGN c
    -pesq-SUBSTRING(c-pesquisa,1,R-INDEX(c-pesquisa,".w") - 1) + ".r".
        ELSE
            
    ASSIGN c-pesq-"".

        
    ASSIGN c-search SEARCH(ENTRY(i-count,PROPATH) + "/" +  c-pesq-r).
        IF 
    c-search <> ? THEN DO:
            
    FILE-INFO:FILE-NAME c-search.
            
    ASSIGN ia-seq ia-seq 1.
            CREATE tt
    -lista.
            
    ASSIGN tt-lista.i-seq     ia-seq
                   tt
    -lista.c-arquivo c-search
                   tt
    -lista.mod-date  FILE-INFO:FILE-MOD-DATE
                   tt
    -lista.mod-time  STRING(FILE-INFO:FILE-MOD-TIME,"HH:MM:SS") .
        
    END.

        
    ASSIGN c-search SEARCH(ENTRY(i-count,PROPATH) + "/" c-pesquisa).
        IF 
    c-search <> ? THEN DO:
            
    FILE-INFO:FILE-NAME c-search.
            
    ASSIGN ia-seq ia-seq 1.
            CREATE tt
    -lista.
            
    ASSIGN tt-lista.i-seq     ia-seq
                   tt
    -lista.c-arquivo c-search
                   tt
    -lista.mod-date  FILE-INFO:FILE-MOD-DATE
                   tt
    -lista.mod-time  STRING(FILE-INFO:FILE-MOD-TIME,"HH:MM:SS") .
        
    END.
       
    END.

    FOR 
    EACH tt-lista
        BY tt
    -lista.i-seq.
        
    DISP tt-lista
            WITH WIDTH 140.
    END
    .
    Espero que ajude.

    Abs.
    don.junior e reissobr curtiram isso.
  3. reissobr

    reissobr Membro Participativo

    Bom dia @Cobra.cne
    Brigadão pela ajuda.
    Vou estudar o exemplo, e depois posto os resultados que alcancei.

Compartilhe esta Página