ABRIR ARQUIVO TEXTO PUBLIC
Boa tarde
Colegas tem como eu fazer algo como abaixo
Call Abrirarquivo ---Tipo public que so feche qdo eu chamar a função fecharArquivo
adiciono linhas
chamo outra função
adiciono linhas
chamo outra função
adiciono linhas
Call FechaArquivo
Function abrirArquivo()
Abro o arquivo
End Function
Function FechaArquivo()
Fecho o arquivo
end function
Hoje a cada função eu abro e fecho o mesmo arquivo, ai fica enviavel, pos a cada função adiciono varias linhas
Obrigado
Colegas tem como eu fazer algo como abaixo
Call Abrirarquivo ---Tipo public que so feche qdo eu chamar a função fecharArquivo
adiciono linhas
chamo outra função
adiciono linhas
chamo outra função
adiciono linhas
Call FechaArquivo
Function abrirArquivo()
Abro o arquivo
End Function
Function FechaArquivo()
Fecho o arquivo
end function
Hoje a cada função eu abro e fecho o mesmo arquivo, ai fica enviavel, pos a cada função adiciono varias linhas
Obrigado
Porque você não adiciona todas essas informações em uma variável publica e depois apenas repassa o conteúdo dela para o arquivo de texto?
Exemplo.
Exemplo.
Public ConteudoArquivo As String
Private Sub Metodo01()
Me.ConteudoArquivo = [Ô]Estou adicionando um conteúdo[Ô]
End Sub
Private Sub Metodo02()
Me.ConteudoArquivo = [Ô]Estou adicionando um conteúdo novamente[Ô]
End Sub
Private Sub Salvar()
Dim Arquivo As StreamWriter
Arquivo = New StreamWriter([Ô]D:\Teste.txt[Ô])
Arquivo.Write(Me.ConteudoArquivo)
Arquivo.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Salvar()
End Sub
eu já fiz desta forma, mas acontece qdo salva fica tudo em uma unica linha
e cada função irá adiocnar um tipo de registro e tem que ficar tipo
cada função terá um loop que adicionárá linhas, se acumular tudo em uma string vai acabar dando prolemas pois eu não sei qtas linhas poderão ser adicionadas, tipo 1000, 2000 , ou 10 ou 20 etc.
registro 10 ............................................................
registro 10 ............................................................
registro 10 ............................................................
registro 10 ............................................................
registro 20 ............................................................
registro 20 ............................................................
registro 20 ............................................................
registro 20 ............................................................
registro30 ............................................................
registro30 ............................................................
registro30 ............................................................
atualmente eu faço assim para cada função
Dim sw As StreamWriter
If IO.File.Exists([Ô]C:\caminho\Sintegra.txt[Ô]) Then
sw = File.AppendText([Ô]C:\Caminho\Sintegra.txt[Ô])
Else
sw = New StreamWriter([Ô]C:\caminho\Sintegra.txt[Ô])
End If
sw.WriteLine(MontaRegistroTipo_10)
sw.Close()
e isso está a cada linha, então fica um abre e fecha
no vb6
abre-se a LPT1
Open sArquivo For Output As #f_Sintegra
Print #1,[Ô]kkkDDDDDD[Ô]
pode chamar varias funções e usar o Print#1
fica tudo no mesmo arquivo
depois no final
Close #f_Sintegra
e cada função irá adiocnar um tipo de registro e tem que ficar tipo
cada função terá um loop que adicionárá linhas, se acumular tudo em uma string vai acabar dando prolemas pois eu não sei qtas linhas poderão ser adicionadas, tipo 1000, 2000 , ou 10 ou 20 etc.
registro 10 ............................................................
registro 10 ............................................................
registro 10 ............................................................
registro 10 ............................................................
registro 20 ............................................................
registro 20 ............................................................
registro 20 ............................................................
registro 20 ............................................................
registro30 ............................................................
registro30 ............................................................
registro30 ............................................................
atualmente eu faço assim para cada função
Dim sw As StreamWriter
If IO.File.Exists([Ô]C:\caminho\Sintegra.txt[Ô]) Then
sw = File.AppendText([Ô]C:\Caminho\Sintegra.txt[Ô])
Else
sw = New StreamWriter([Ô]C:\caminho\Sintegra.txt[Ô])
End If
sw.WriteLine(MontaRegistroTipo_10)
sw.Close()
e isso está a cada linha, então fica um abre e fecha
no vb6
abre-se a LPT1
Open sArquivo For Output As #f_Sintegra
Print #1,[Ô]kkkDDDDDD[Ô]
pode chamar varias funções e usar o Print#1
fica tudo no mesmo arquivo
depois no final
Close #f_Sintegra
Private Sub Metodo02()
Me.ConteudoArquivo += [Ô]Estou adicionando um conteúdo novamente[Ô] & vbNewLine
End Sub
Pensando melhor... Faça dessa forma que dará certo, porém use a classe StringBuilder.
Exemplo.
Exemplo.
Imports System.IO
Imports System.Text
Public Class Form1
Public ConteudoArquivo As StringBuilder
Private Sub Metodo01()
Me.ConteudoArquivo.Append([Ô]Estou adicionando um conteúdo[Ô]).Append(vbNewLine)
End Sub
Private Sub Metodo02()
Me.ConteudoArquivo.Append([Ô]Estou adicionando um conteúdo novamente[Ô]).Append(vbNewLine)
End Sub
Private Sub Salvar()
Dim Arquivo As StreamWriter
Arquivo = New StreamWriter([Ô]D:\Teste.txt[Ô])
Arquivo.Write(Me.ConteudoArquivo.ToString)
Arquivo.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.ConteudoArquivo = New StringBuilder
Me.Metodo01()
Me.Metodo02()
Me.Salvar()
MessageBox.Show(Me.ConteudoArquivo.ToString)
End Sub
End Class
Tópico encerrado , respostas não são mais permitidas