GERAR TXT FUNCIONA NA PRIMEIRA NA SEGUNDA NAO

JESUEL.OLIVEIRA 23/10/2012 13:41:23
#412605
Bom Dia, Amigos
Estou a gerar um txt da NFe para ACBR


Cannot write to a closed TextWriter.

   
Dim str_CRIARNFEENVIAR As String = [Ô]NFE.CriarEnviarNFE([Ô][Ô][Ô] & [Ô][Identificacao][Ô]
[ô]NA SEGUNDA TENTATIVA DA ERRO NESTA LINHA [Ô]Cannot write to a closed TextWriter.[Ô]
ArquivoNFe.WriteLine(str_CRIARNFEENVIAR)




[ô] Aqui fecho o arquivo texto, funciona que é uma blz.
ArquivoNFe.WriteLine([Ô][Ô][Ô],213,1)[Ô])
ArquivoNFe.Close()




Algum dos amigos ai tem uma LUZ para me dar,
AJSO 23/10/2012 13:54:01
#412607
Resposta escolhida
Caro JESUEL OLIVEIRA


seu loop de CRIAÇÃO, EDIÇÃO do arquivo TXT

pode estar em loo infinito..............................................

Não esta ocorrendo isso:
objetoWriter.Flush()
objetoWriter.Close()
objetoWriter= Nothing


Boa sorte
JESUEL.OLIVEIRA 23/10/2012 14:54:06
#412615
Então Alessandro Oliveira

Uso apenas para criação, no final eu seto como close.
ja testei dispose, flush e close em Nothing els mostra outro erro, a linha abaixo só executa na primeira vez

Public ArquivoNFe As New System.IO.StreamWriter([Ô]c:
fe\ENTNFE.txt[Ô])

na primeira execução ele passa por esta opção a partir da segunda não, meu bloco de criação segue conforme abaixo.

  
Dim str_CRIARNFEENVIAR As String = [Ô]NFE.CriarEnviarNFE([Ô][Ô][Ô] & [Ô][Identificacao][Ô]
ArquivoNFe.WriteLine(str_CRIARNFEENVIAR)
ArquivoNFe.WriteLine([Ô]Modelo=55[Ô])
ArquivoNFe.WriteLine([Ô]Serie=001[Ô])
ArquivoNFe.WriteLine([Ô]Codigo=[Ô] & rsDadosIniciais([Ô]ven_npedido[Ô]))
ArquivoNFe.WriteLine([Ô]Numero=[Ô] & rsDadosIniciais([Ô]ven_id[Ô]))
ArquivoNFe.WriteLine([Ô]Emissao=[Ô] & Mid(rsDadosIniciais([Ô]ven_dtvenda[Ô]).ToString, 1, 10))
ArquivoNFe.WriteLine([Ô]Saida=[Ô] & Mid(rsDadosIniciais([Ô]ven_dtvenda[Ô]).ToString, 1, 10))
ArquivoNFe.WriteLine([Ô]BaseICMSSubstituicao=[Ô] & trocaVpotPt(NFE_TOTAIS_BaseICMSSubstituicao))
ArquivoNFe.WriteLine([Ô]ValorICMSSubstituicao=[Ô] & trocaVpotPt(NFE_TOTAIS_ValorICMSSubstituicao))
ArquivoNFe.WriteLine([Ô]ValorProduto=[Ô] & trocaVpotPt(NFE_TOTAIS_ValorProduto))
ArquivoNFe.WriteLine([Ô][Ô][Ô],213,1)[Ô])
ArquivoNFe.Close()




quando mando executar pela segunda vez da erro na linha ArquivoNFe.WriteLine(str_CRIARNFEENVIAR) |||||||| Cannot write to a closed TextWriter.
ALEVALE 23/10/2012 15:57:25
#412625
Public oEscrever As System.IO.StreamWriter
Public fluxoTexto As IO.StreamWriter

[ô]CRIA O ARQUIVO TXT
oEscrever = File.CreateText([Ô]ARQUIVO[Ô] & [Ô].txt[Ô])
oEscrever.Close()

[ô]MONTA O CABECALHO DO TXT
fluxoTexto = New IO.StreamWriter([Ô]ARQUIVO[Ô]& [Ô].txt[Ô], True)
fluxoTexto.WriteLine([Ô]TESTE[Ô])
fluxoTexto.Close()

[ô]MONTA O CABECALHO DO TXT
fluxoTexto = New IO.StreamWriter([Ô]ARQUIVO[Ô]& [Ô].txt[Ô], True)
fluxoTexto.WriteLine([Ô]TESTE2[Ô])
fluxoTexto.Close()
AJSO 24/10/2012 11:40:21
#412698
Caro JESUEL OLIVEIRA
Olhe

Imports System
Imports System.IO
Imports System.Text

Public Class Test
Public Shared Sub Main()
Dim path As String = [Ô]c:    EMPORARIO\arquivotestedosistema.txt[Ô]
Dim i, j, k As Integer

If File.Exists(path) = False Then

[ô] Criar arquivo para escrever.
Dim sw As StreamWriter = File.CreateText(path)

[ô]LOOP SISTEMA header
For i = 0 To 2 - 1

sw.WriteLine([Ô]CABECALHO [Ô])
Next i

[ô]LOOP SISTEMA corpo
For j = 0 To 10 - 1

sw.WriteLine([Ô]CORPO[Ô])
Next j

[ô]LOOP SISTEMA
For k = 0 To 10 - 1

sw.WriteLine([Ô]RODAPE[Ô])
Next k

[ô]FINALIZA O ARQUIVO
sw.Flush()
sw.Close()
End If

[ô] Open the file to read from.
Dim sr As StreamReader = File.OpenText(path)
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
sr.Close()
End Sub
End Class



Boa sorte
OCELOT 24/10/2012 13:57:48
#412711
Você abre o arquivo apenas uma vez, quando a classe é criada, depois de gerar o arquivo você fecha ela e não abre mais quando tenta gerar outro arquivo.

Se você não usa a variável em nenhum outro local não tem porque declarar ela na classe, e mesmo que usasse o correto seria passar ela por parâmetro, então ela deve ser declarada localmente na função, até porque da forma como está o arquivo estava sendo aberto mesmo que não fosse usado.
ALEVALE 24/10/2012 20:48:23
#412738
Pelo meu exemplo não funcionou ?
JESUEL.OLIVEIRA 14/11/2012 16:37:59
#414231
Olá, Amigos obrigado a todos estou encerrando com a melhor opção mas agradeço a todos pela ajuda.
Tópico encerrado , respostas não são mais permitidas