CRIAR E ESCREVER TEXTO

JOERBETH 22/11/2016 21:51:46
#469129
Boa noite

Aff, vb.net

onde o erro?
Dim fi As New FileInfo([Ô]C:    emp    este.txt[Ô])
If Not File.Exists([Ô]C:    emp    este.txt[Ô]) = True Then
File.Create([Ô]C:    emp    este.txt[Ô])
Dim objWriter As New System.IO.StreamWriter([Ô]C:    emp    este.txt[Ô])
objWriter.Write([Ô]linha1[Ô])
objWriter.Write([Ô]linha2[Ô])
objWriter.Write([Ô]linha3[Ô])
objWriter.Close()
MsgBox([Ô]Ficheiro gravado[Ô])
Else
MsgBox([Ô]Arquivo Existe[Ô])
End If

debugando, quando chega nessa linha: Dim objWriter As New System.IO.StreamWriter([Ô]C:    emp    este.txt[Ô])

abre o form e não faz nada?

grato


KERPLUNK 22/11/2016 22:04:11
#469131
Resposta escolhida
A pasta existe?
Seu usuário pode gravar nesta pasta?
Porque não está usando bloco try? Isso facilitaria para ver a exception.
Porque não está usando bloco using? Streams, são todas descartáveis e devem ser usadas sempre em blocos using, assim:

Using writer As StreamWriter = New StreamWriter([Ô]C:    emp\arquivo.txt[Ô])
writer.Write([Ô]qualquer coisa aqui[Ô])
End Using
LVFIOROT 23/11/2016 08:54:14
#469141
Está dando erro porque o arquivo está aberto devido a esta linha

File.Create([Ô]C:    emp    este.txt[Ô])


e depois voce manda abrir novamente o arquivo nesta linha

Dim objWriter As New System.IO.StreamWriter([Ô]C:    emp    este.txt[Ô])


isso resolveria o problema,

File.Create([Ô]C:    emp    esteb.txt[Ô]).Close()


mesmo, nao sendo a melhor pratica.
LVFIOROT 23/11/2016 09:02:01
#469143
acho que essa seria a melhor forma de se programar para essa necessidade

If Not File.Exists([Ô]C:    emp    esteb.txt[Ô]) = True Then
Using objWriter As New System.IO.StreamWriter(path:=[Ô]C:    emp    esteb.txt[Ô], append:=False, encoding:=System.Text.Encoding.ASCII)
With objWriter
.Write([Ô]linha1[Ô])
.Write([Ô]linha2[Ô])
.Write([Ô]linha3[Ô])
.Flush()
.Close()
End With
MsgBox([Ô]Ficheiro gravado[Ô])
End Using
Else
MsgBox([Ô]Arquivo Existe[Ô])
End If
JOERBETH 23/11/2016 21:08:36
#469185
boma noite

LVFIOROT, então so para entender, essa linha aqui toda para criar so o arquivo?:
Using objWriter As New System.IO.StreamWriter(path:=[Ô]C:    emp    este.txt[Ô], append:=False, encoding:=System.Text.Encoding.ASCII)
KERPLUNK 23/11/2016 21:15:49
#469186
Essa [Ô]linha toda[Ô], é o início do bloco using. Tecnicamente o arquivo será criado no End Using. Ela diz:
Comece um processo, criando um arquivo, no caminho [Ô]C:    emp    esteb.txt[Ô], não emende isso em um arquivo existente(append=false) e use a codificação ASCII
JOERBETH 23/11/2016 21:29:33
#469187
valeu
Tópico encerrado , respostas não são mais permitidas