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

Ler um Diretório de XML

Discussão em 'Progress 4GL' iniciado por Marcos Frasson, Setembro 13, 2018.

  1. Marcos Frasson

    Marcos Frasson Membro Participativo

    Bom Dia pessoal.

    Estou precisando desenvolver um programa que lê um diretório de XML, basicamente vou entrar com número de XML inicial e número final, por exemplo Ini: 01 Fim: 10, o programa vai acessar um diretório especifico e copiar esses 10 xml para um outra área, gostaria de saber como faço pra lêr esses XML, alguém poderia dar uma ideia de como fazer isso?

    Att.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Se você já sabe a pasta de origem e a pasta de destino e o nome dos arquivos que existem na pasta, usa o OS-COPY:
    Veja o arquivo em anexo.

    Arquivos Anexados:

    • 111.png
      111.png
      Tamanho:
      216.9 KB
      Visitas:
      6
  3. Marcos Frasson

    Marcos Frasson Membro Participativo

    Bom consegui copiar um arquivo com a estrutura:

    REPEAT:

    CREATE tt-arquivo.
    ASSIGN i-cont = i-cont + 1.
    UPDATE tt-arquivo.arquivo FORMAT "X(13)".

    DOS SILENT copy value("X:\teste\"+ tt-arquivo.arquivo + ".xml")
    Value("v:\xml\"+ tt-arquivo.arquivo + ".xml").

    ASSIGN tt-arquivo.arquivo = "1100100".

    IF (i-cont = 3) THEN DO:

    LEAVE.

    END.

    END.

    Porém da forma que está é necessário ir digitando arquivo por arquivo, porém preciso de algo dinâmico, o usuários vai entrar com um RANGE por exemplo ele quer copiar o arquivo 1100100280 até 1100100298, seria 18 arquivos par serem copiadosdo diretório X: para V: .... Como nunca precisei fazer algo parecido estou com essa dificuldade para trabalhar com o range.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Código:
    DEF VAR vInicial AS INTEGER.
    DEF VAR vFinal AS INTEGER.
    DEF VAR xi AS INTEGER.
    
    vInicial = 3.
    vFinal = 6.
    
    DO xi = vInicial TO vFinal.
       OS-COPY VALUE("C:\Temp\Origem\" + STRING(xi) + ".txt") VALUE("C:\Temp\Destino\" + STRING(xi) + ".txt").
    END.
    
    Testei aqui e vai normal.
    Marcos Frasson curtiu isso.
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Se funcionar, dá um retorno ai.
    Marcos Frasson curtiu isso.
  6. Marcos Frasson

    Marcos Frasson Membro Participativo

    Opa, acabei de adaptar para minha necessidade, funcionou certinho :D eu não tinha pegado a parte do DO.... ao implementar aqui resolveu. MUITO Obrigado.
    rafael.andrade curtiu isso.

Compartilhe esta Página