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 Total de Linhas de Um TXT

Discussão em 'Progress 4GL' iniciado por ueluis, Março 18, 2015.

  1. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Criei esse programinha, só funciona em windows, mas dá pra adaptar pra usar em linux.
    Código:
    define input  parameter nomeArquivo   as character no-undo.
    define output parameter linhasArquivo as integer   no-undo.
    
    define variable resultado   as character no-undo.
    define variable comando     as character no-undo.
    
        if search(nomeArquivo) = ? then do:
            message 'Arquivo não existe'
                view-as alert-box info buttons ok.
            return 'NOK'.
        end.
        assign comando = 'findstr /R /N "^" ' + search(nomeArquivo) + ' | find /C ":"'.
        input through value(comando) no-echo.
        set resultado.
        input close.
       
        assign linhasArquivo = int(resultado).
        return 'OK'.
    
    Pra usar ....
    Código:
    define variable linhas as integer no-undo.
    run utils/LinhasTxt.p('t:\_custom\ems2\cstp\cscx010.w', output linhas).
    if return-value = 'OK' then do:
        disp linhas.
    end.
    jc01 curtiu isso.
  2. ueluis

    ueluis Membro Participativo

    @bootstrapmaster , valeu pela ajuda essa realmente é a maneira mais rápida para se obter o total de linhas de um arquivo muito grande.


    obrigado a todos.
  3. jc01

    jc01 Membro Participativo

    Sei que já houve solução, mas também pode ser feito assim:

    Código:
    DEF VAR lc-conteudo AS LONGCHAR NO-UNDO.
     
    COPY-LOB FROM FILE "c:\arquivo.txt" TO lc-conteudo.
     
    MESSAGE "Número de linhas: " + STRING(NUM-ENTRIES(lc-conteudo, chr(10)))
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    wellington e don.junior curtiram isso.
  4. ueluis

    ueluis Membro Participativo

    @jc01 ,

    obrigado pela ajuda testei aqui e utilizarei esta maneira, economizando linhas ganho performance.

    vlw
  5. wellington

    wellington Membro Participativo

    Melhor, pois tem um ganho de performance.

Compartilhe esta Página