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