COPIAR VARIOS ARQ. DE UMA LISTA TXT EM ARQ. UNICO
[Ô]c:\arquivo01.txt[Ô]
[Ô]c:\arquivo02.txt[Ô]
[Ô]c:\arquivo03.txt[Ô]
Gostaria de uni-los em um arquivo somente, tanto faz se terei de ler o arquivo TXT da Listagem ou pegar direto do Box da Seleção de Arquivos, mas preciso que todos sejam unidos em um arquivo apenas.
Como posso Executa-lo?
Montei rapidamente este exemplo ... veja se te ajuda:
[ô]--------------------------
Citação:
Private Sub Form_Load()
Dim arq1 As String
Dim arq2 As String
Dim arq3 As String
Dim conteudo As String
Dim conteudo1 As String
Dim conteudo2 As String
Dim conteudo3 As String
Dim n1 As Integer
Dim n2 As Integer
Dim n3 As Integer
arq1 = [Ô]c:\arquivo01.txt[Ô]
arq2 = [Ô]c:\arquivo02.txt[Ô]
arq3 = [Ô]c:\arquivo03.txt[Ô]
n1 = FreeFile()
n2 = FreeFile() + 1
n3 = FreeFile() + 2
Open arq1 For Input As #n1
Open arq2 For Input As #n2
Open arq3 For Input As #n3
conteudo1 = Input(LOF(n1), n1)
conteudo2 = Input(LOF(n2), n2)
conteudo3 = Input(LOF(n3), n3)
Close #n1
Close #n2
Close #n3
conteudo = conteudo1 & [Ô] - [Ô] & conteudo2 & [Ô] - [Ô] & conteudo3
MsgBox conteudo
End Sub
[ô]--------------------------
[][ô]s,
Tunusat.
Na pressa esqueci de gravar o arquivo destino. Coloque os [Ô]DIM[Ô] no topo e o código restante antes do [Ô]End Sub[Ô]
[ô]--------------------------------------
Dim arq As String
Dim conteudo As String
Dim n As Integer
[ô]...
Open arq For Output As #n
Print #n, conteudo
Close #n
[ô]--------------------------------------
[][ô]s,
Tunusat.
E fiz com que fosse salvo um arquivo TXT trocando o ponto e vÃrgula por quebra, ficando:
[Ô]c:\arquivo01.txt[Ô]
[Ô]c:\arquivo02.txt[Ô]
[Ô]c:\arquivo03.txt[Ô]
[Ô]c:\arquivo04.txt[Ô]
...
Preciso que leia do BOX ou abrindo o arquivo, pois deve ser uma Variável já que não é definido um numero exato de arquivos a serem unidos;
Tentei buscar do Arquivo TXT desta maneira mas Não deu Certo:
Private Sub InitializeComponent()
[ô]
[ô]SelecionaArquivoButton
[ô]
Me.SelecionaArquivoButton.Location = New System.Drawing.Point(294, 30)
Me.SelecionaArquivoButton.Name = [Ô]SelecionaArquivoButton[Ô]
Me.SelecionaArquivoButton.Size = New System.Drawing.Size(32, 23)
Me.SelecionaArquivoButton.TabIndex = 2
Me.SelecionaArquivoButton.Text = [Ô]...[Ô]
Me.SelecionaArquivoButton.UseVisualStyleBackColor = True
[ô]
[ô]SelecionaArquivoBox
[ô]
Me.SelecionaArquivoBox.Location = New System.Drawing.Point(61, 32)
Me.SelecionaArquivoBox.Name = [Ô]SelecionaArquivoBox[Ô]
Me.SelecionaArquivoBox.Size = New System.Drawing.Size(229, 20)
Me.SelecionaArquivoBox.TabIndex = 1
End Sub
[ô]----------------------------------------------------------------------
Private Sub SelecionaArquivoButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SelecionaArquivoButton.Click
Me.AbreArquivos.Multiselect = True
Me.AbreArquivos.Title = [Ô]Selecionar Arquivos para Conversão[Ô]
AbreArquivos.InitialDirectory = [Ô]C:\[Ô]
[ô]filtra para exibir somente arquivos editáveis
AbreArquivos.Filter = [Ô]Arquivos (*.TXT;*.CSV)|*.TXT;*.CSV[Ô]
AbreArquivos.CheckFileExists = True
AbreArquivos.CheckPathExists = True
AbreArquivos.FilterIndex = 2
AbreArquivos.RestoreDirectory = True
AbreArquivos.ReadOnlyChecked = True
AbreArquivos.ShowReadOnly = True
Dim dr As DialogResult = Me.AbreArquivos.ShowDialog()
If dr = System.Windows.Forms.DialogResult.OK Then
For Each arquiv As [String] In AbreArquivos.FileNames
SelecionaArquivoBox.Text += Chr(34) + arquiv + Chr(34) + [Ô]; [Ô]
Next
End If
End Sub
[ô]----------------------------------------------------------------------
Private Sub ............
Dim Caminho As String
Caminho = [Ô]..\Temp\ArquivosSelecionados.txt[Ô]
IO.File.Create(Caminho).Close()
Dim arquivossel = ((((SelecionaArquivoBox.Text.Replace([Ô]; [Ô] + Chr(34), vbCrLf + Chr(34)))).Replace([Ô]; [Ô], [Ô][Ô])))
Dim Insere As New IO.StreamWriter(Caminho)
Insere.WriteLine(arquivossel)
Insere.Close()
[ô] DAQUI PRA BAIXO TA TUDO ERRADO, MAS TENTEI....
Dim Le_Arq_Sel As IO.StreamReader
Dim Li_Arq_Sel As String
Le_Arq_Sel = New IO.StreamReader([Ô]..\Temp\ArquivosSelecionados.txt[Ô])
Li_Arq_Sel = Le_Arq_Sel.ReadLine
Dim Le_Arquivos As IO.StreamReader
Dim Li_Arquivos As String
Le_Arquivos = New IO.StreamReader(Li_Arq_Sel)
Li_Arquivos = Le_Arquivos.ReadLine
Dim Arquivo As String
Arquivo = [Ô]..\Temp\Arquivo.txt[Ô]
IO.File.Create(Arquivo).Close()
Dim Salva_Arq As New IO.StreamWriter(Arquivo)
Salva_Arq.WriteLine(Li_Arquivos)
Salva_Arq.Close()
Le_Arq_Sel.Close()
Le_Arquivos.Close()
End Sub
[ô]----------------------------------------------------------------------
Claro não esta todo script ai, mas acho que já da para entender o que eu preciso, preciso que todos os listado no SelecionaArquivoBox.Text ou no Arquivo [Ô]..\Temp\ArquivosSelecionados.txt[Ô] vão para [Ô]..\Temp\Arquivo.txt[Ô] e Como é variavel não posso Stera Fixo no SCRIPT os arquivos a serem unidos...
Grato e no aguardo.
Mas preciso eh para o VB Express 2010, sou muito verde ainda no VB e este que enviaste MARCELO, é do VB 6...
Mas fico muito Grato pelo teu empenho em me ajudar.
crie um arquivo .bat com o seguinte código dentro.
copy arquivo1.txt+arquivo2+txt arquivo.txt
Eu utilizo muito isto, eu crio o arquivo .bat, através do VB.
Att,
Bressan
Bom ficarei no Aguardo.
Grato.
[ô]Pega Arquivos
Dim sArq() As String
ReDim sArq(0)
sArq(0) = Dir([Ô]C:\Caminho\*.txt[Ô])
While sArq(0) <> [Ô][Ô]
ReDim Preserve sArq(UBound(sArq) + 1)
sArq(UBound(sArq)) = sArq(0)
sArq(0) = Dir
Wend
Ai acima você tem a lista de arquivos, agora é só gravar no arquivo final, neste caso vou aproveira o array
Dim i As Integer
Dim a As integer, b As Integer, xBuffer As String
For i = 1 to Ubound(sArq)
a = FreeFile
Open [Ô]C:\Caminho\[Ô] & sArq(i) As #a
xBuffer = Input(LOF(a), 1)
Close #a
[ô]Adiciona no arquivo final
b = FreeFile
Open [Ô]C:\ArquivoFinal.txt[Ô] For Append As #b
Print #b, xBuffer
Close #b
Next i