3 Replies Latest reply: Jun 22, 2010 4:51 PM by teruhikobo RSS

    Gerar txt sem a linha de cabeçalho.

    teruhikobo

      Olá, pessoal!

      Eu estou tentando gerar um arquivo txt como saída, através da função STORE, porém não quero que na primeira linha do arquivo venham os cabeçalhos das colunas. Fiz várias pesquisas aqui, mas ainda não encontrei o que eu queria. Alguém tem alguma dica?

      Grato,

      Marcelo

       

        • Gerar txt sem a linha de cabeçalho.
          teruhikobo

          Já evoluí um pouco na questão, mas ainda não consegui resolver em definitivo.

          Através de um botão é possível criar a ação de exportar para um arquivo. Com a flag para "incluir nome do campo" desmarcada eu consigo gerar o arquivo do jeito que preciso. Porém, não posso deixar dessa forma pois não vai ter ninguém pra ficar clicando no botão e isto precisará ficar agendado no servidor.

          Estou partindo pra macro. Já evoluí utilizando o código abaixo, mas o cabeçalho continua saindo, mesmo ocultando os cabeçalhos no meu objeto.

          set obj = ActiveDocument.GetSheetObject("TB04")
          Obj.Export "C:\test.txt", "/"

          Tá difícil, já pesquisei bastante, mas ainda não consegui resolver. Se alguém tiver alguma idéia, por favor.

          Grato,

          Marcelo



            • Gerar txt sem a linha de cabeçalho.

              Boa tarde Marcelo

              Usando macro você pode tentar o código abaixo para tentar resolver seu problema é só linkar com o evento ao abrir no menu configurações -> propriedade do documento -> macro. Qualquer dúvidas para a adapção posta ai que tento te ajudar no que puder.

              sub ao_abrir
              set obj = ActiveDocument.GetSheetObject("TB02")
              Const ForAppending = 8
              Set objFSO = CreateObject("Scripting.FileSystemObject")

              Set objTextFile = objFSO.OpenTextFile ("c:\teste.txt", ForAppending, True)
              for RowIter = 1 to obj.GetRowCount-1
              linha=""
              for ColIter =0 to obj.GetColumnCount-1
              set cell = obj.GetCell(RowIter,ColIter)
              'após o "&" você pode usar o separador que quiser dentro das aspas duplas
              if linha<>"" then linha = linha & ","
              linha = linha & cell.Text
              next
              objTextFile.WriteLine (linha)
              next
              objTextFile.Close
              end sub

                • Gerar txt sem a linha de cabeçalho.
                  teruhikobo

                  Obrigado, Mauro!

                  O problema acabou sendo resolvido de outra forma. Usar o conteúdo da primeira linha como rótulo da única coluna que seria exportada. Não sei se é a melhor forma, mas foi como se conseguiu resolver:

                   

                  ...

                  Arquivo_Lido:
                  LOAD @1:n as LINHA,
                  ROWNO() as NUM_LINHA
                  FROM $(v_ArqEntrada)
                  (fix, codepage is 1252);

                  Primeira_Linha:
                  LOAD LINHA as LINHA1
                  RESIDENT Arquivo_Lido
                  WHERE NUM_LINHA = 1;

                  LET v_PrimeiraLinha = peek('LINHA1',0,'Primeira_Linha');

                  Arquivo_Convertido:
                  LOAD LINHA as [$(v_PrimeiraLinha)]
                  RESIDENT Arquivo_Lido
                  WHERE NUM_LINHA <> 1;

                  STORE * FROM Arquivo_Convertido INTO $(v_ArqSaida) (txt);

                  ...

                   

                  Abraço,

                  Marcelo