1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Alteração de Arquivo txt

Discussão em 'Progress 4GL' iniciado por muertebr, Maio 19, 2009.

  1. muertebr

    muertebr Membro Participativo

    Ola...
    Estou tentando modificar um arquivo txt.

    Eu preciso verificar quando o arquivo txt de uma determinada posição até outra for em branco (143,150) então deve ser colocado uma mensagem "bla bla bla bla bla".

    consegui achar aonde ta em branco, mais não consigo fazer ele colocar uma mensagem e voltar no txt ou em outro txt.

    DEF VAR c-linha AS CHAR FORMAT "x(350)" NO-UNDO.
    DEF VAR i-linha AS CHAR FORMAT "x(30)" NO-UNDO.
    ASSIGN i-linha = "Teste Miguel".
    INPUT FROM VALUE("P:\Miguel\arquivo.txt").
    REPEAT:
    ASSIGN c-linha = "".
    IMPORT UNFORMATTED c-linha.
    IF SUBSTRING(c-linha,143,150) = "" THEN DO: /** procura campo em branco **/
    ASSIGN SUBSTRING(c-linha,143,20) = i-linha. /** transforma posição em valor **/
    DISP SUBSTRING(c-linha,1,220) WITH WIDTH 600. /** Mostra campo alterado **/
    /*** Ja tentei usa output, só que não aparece nada, somente em branco **/
    END.

    END.
  2. muertebr

    muertebr Membro Participativo

    Pra quem quisé o código :)

    como sou uma alma caridoza

    Código:
    /** Altera‡Æo de arquivos txt por posi‡Æo **/
    
    DEF VAR c-linha AS CHAR FORMAT "x(350)" NO-UNDO.
    DEF VAR i-linha AS CHAR NO-UNDO.
    ASSIGN i-linha = "Contabilizacao de fretes 04/2007". /** Frase a ser inserida no arquivo **/
    INPUT FROM VALUE("P:\Miguel\C¢pia de CO042007.txt"). /** Caminho do arquivo a ser alterado **/
    OUTPUT TO "p:\miguel\CO042007 - ALTERADO.txt". /** Caminho de gera‡Æo do arquivo **/
    REPEAT:
        ASSIGN c-linha = "".
        IMPORT UNFORMATTED c-linha.
        IF SUBSTRING(c-linha,143,150) = "" THEN DO: /** c-linha,xx(posi‡Æo),xx(Quantidade de caracteres) no .txt e informa‡Æo do campo **/ 
            ASSIGN SUBSTRING(c-linha,143,150) = i-linha. /** c-linha,xx(posi‡Æo),xx(Quantidade de caracteres) 
                                                            que vai ser colocado a frase do i-linha **/
        END.
        
        PUT UNFORMATTED SKIP SUBSTRING(c-linha,1,292) FORMAT "x(292)". /** Importa‡Æo por put unformatted para arquivos que 
                                                                    precisam de espa‡amento correto no final do arquivo **/
    END.
    OUTPUT CLOSE.

Compartilhe esta Página