none
SSIS - Manipular arquivo NOME.AAAAMMDD.txt RRS feed

  • Pergunta

  •  

    Olá Pessoal,

     

    Estou com uma duvida de como manipular corretamente um arquivo no SSIS cujo o nome pode mudar. Enfim imaginem o seguinte cenário eu recebo um arquivo com o sequinte nome NOME.AAAAMMDD.txt em um diretório, preciso copiar o arquivo para uma determinada pasta e renomea-lo para NOME.txt e carrega-lo em uma tabela.

     

    Bem para carregar o arquivo podemos conectar diretamente ao arquivo e carrega-lo.

     

    Minha duvida se refere a manipulação do arquivo:

     

    1) Qual componente eu utilizo para modificar o nome do arquivo?

     

    2) Qual componente eu utilizo para mover o arquivo para uma pasta ?

     

     

     

    Obrigado.

     

     

    Antonio Rodrigues

    quinta-feira, 26 de junho de 2008 17:04

Respostas

  • Antonio,

    segue um exemplo... fiz o parse do codigo, mas não executei.

    essa é a idéia... talvez dê pau no IndexOf, Remove ou falte um "." quando concateno a exteção...

     

     

    Code Snippet

    Imports System

    Imports System.Data

    Imports System.Math

    Imports System.IO

    Imports Microsoft.SqlServer.Dts.Runtime

     

    Public Class ScriptMain

     

    Public Sub Main()

     

    Dim Caminho As String

    Dim NovoCaminho As String

    Dim NomeArquivo As String

    Dim Extencao As String

    Dim NovoNomeArquivo As String

    Caminho = Dts.Variables("Caminho").Value.ToString()

    NomeArquivo = Path.GetFileName(Caminho)

    Extencao = Path.GetExtension(NomeArquivo)

    NovoCaminho = "C:\"

    NovoNomeArquivo = Path.GetFileNameWithoutExtension(Caminho).Remove(Path.GetFileNameWithoutExtension(Caminho).IndexOf("."), 8)

    NovoNomeArquivo = NovoCaminho + "\" + NovoNomeArquivo + Extencao

    Try

    System.IO.File.Move(Caminho, NovoNomeArquivo)

    Catch ex As IOException

    msgbox(ex.Message.ToString()

    End Try

    Dts.TaskResult = Dts.Results.Success

    End Sub

     

    End Class

     

     

     

     

    Não esquece de declarar o Imports System.IO

    O código esta dentro de um script Task... para saber como chegar ao código e passar o nome do arquivo como parametro veja esse artigo:

    http://www.lucasalmeida.com.br/artigos/SSIS%20-%20Foreach%20Loop%20Container%20Task.doc

     

    Abraço

    • Marcado como Resposta Richard Juhasz quinta-feira, 31 de janeiro de 2013 14:52
    sexta-feira, 27 de junho de 2008 14:40