PDA

View Full Version : vb come creare un file di testo


The March
24-03-2004, 17:44
aiuto! nuovo quesito... devo creare un file di testo tramite vb.net...
facciamolo facile facile...
mi potreste postare il codice per fare un file di testo con scritto "ciao" in c:/documenti con il nome testo.txt?


thanks!;)

The March
25-03-2004, 11:08
Originariamente inviato da The March
aiuto! nuovo quesito... devo creare un file di testo tramite vb.net...
facciamolo facile facile...
mi potreste postare il codice per fare un file di testo con scritto "ciao" in c:/documenti con il nome testo.txt?


thanks!;)


ho trovat nell'help di vb.net qualcosa che forse funziona... lo trovate mettendo nell'help "streamwriter Class"..
posterò il codice se funziona..;)

The March
25-03-2004, 11:37
ok ora vi posto il codice...


Public Sub CreateTextFile(ByVal FileName As String, _
ByVal TextToAdd As String)

Dim Fs As FileStream = New FileStream(FileName, _
FileMode.CreateNew, FileAccess.Write, FileShare.None)

dim SwFromFile as StreamWriter = new StreamWriter(FileName)
SwFromFile.Write(TextToAdd)
SwFromFile.Flush()
SwFromFile.Close()

dim SwFromFileStream as StreamWriter = new StreamWriter(Fs)
SwFromFileStream.Write(TextToAdd)
SwFromFileStream.Flush()
SwFromFileStream.Close()

dim SwFromFileStreamDefaultEnc as StreamWriter = _
new StreamWriter(Fs, System.Text.Encoding.Default)
SwFromFileStreamDefaultEnc.Write(TextToAdd)
SwFromFileStreamDefaultEnc.Flush()
SwFromFileStreamDefaultEnc.Close()

dim SwFromFileTrue as StreamWriter = _
new StreamWriter(FileName,True)
SwFromFileTrue.Write(TextToAdd)
SwFromFileTrue.Flush()
SwFromFileTrue.Close()

dim SwFromFileTrueUTF8Buffer = _
new StreamWriter(FileName, _
True, System.Text.Encoding.UTF8, 512)
SwFromFileTrueUTF8Buffer.Write(TextToAdd)
SwFromFileTrueUTF8Buffer.Flush()
SwFromFileTrueUTF8Buffer.Close()

Dim SwFromFileTrueUTF8 = _
new StreamWriter(FileName, True, _
System.Text.Encoding.UTF8)
SwFromFileTrueUTF8.Write(TextToAdd)
SwFromFileTrueUTF8.Flush()
SwFromFileTrueUTF8.Close()

Dim SwFromFileStreamUTF8Buffer = _
new StreamWriter(Fs, System.Text.Encoding.UTF8, 512)
SwFromFileStreamUTF8Buffer.Write(textToAdd)
SwFromFileStreamUTF8Buffer.Flush()
SwFromFileStreamUTF8Buffer.Close()
end sub


Questo è quello che suggerische l'help di vb...

in pratica mi da un errore alla prima riga perchè il percorso non era acessibile.... così ho messo c:\inetpub\ciao.txt
facendo così da un errore nella seconda riga perchè dice che il file è gia in uso... così ho aggiunto dopo la prima riga
fs.close()
ma giustamente alla riga sucessiva mi dice che è impossibile scrivere sul file....

:muro: :muro: :muro:
come azz posso fare?
aiutatemi per favore!

Geen
25-03-2004, 14:37
Ok allora
try
Dim Strwr As StreamWriter
Dim f As New FileInfo(NomeFile)

If Not f.Exists Then
Strwr = f.CreateText()
else
Strwr = New StreamWriter(NomeFile, True)
end if
Strwr.WriteLine("Testo")
Strwr.WriteLine("Testo2")
Catch errore As IO.IOException
msgbox(errore.message)
Finally
Strwr.Close()
End Try

Il close dello stream tienilo nel blocco Finally perche' la chiusura e' fondamentale per evitare il problema da te già incontrato di "file già in uso"

The March
25-03-2004, 14:44
Originariamente inviato da Geen
Ok allora
try
Dim Strwr As StreamWriter
Dim f As New FileInfo(NomeFile)

If Not f.Exists Then
Strwr = f.CreateText()
else
Strwr = New StreamWriter(NomeFile, True)
end if
Strwr.WriteLine("Testo")
Strwr.WriteLine("Testo2")
Catch errore As IO.IOException
msgbox(errore.message)
Finally
Strwr.Close()
End Try

Il close dello stream tienilo nel blocco Finally perche' la chiusura e' fondamentale per evitare il problema da te già incontrato di "file già in uso"

Grazie! ora lo provo!
comunque ho gia fatto una modifica...
la dichiarazione di strwr l'ho fatta fuori dal blocco try catch perchè se no in finally diceva che non era dichiarato...

The March
25-03-2004, 14:48
Dim Strwr As System.IO.StreamWriter
Try

Dim f As New System.IO.FileInfo(aNomeFile)

If Not f.Exists Then
Strwr = f.CreateText()
Else
Strwr = New System.IO.StreamWriter(aNomeFile, True)
End If
Strwr.WriteLine("Testo1")
Strwr.WriteLine("Testo2")
Catch errore As IO.IOException
MsgBox(errore.Message)
Finally
Strwr.Close()
End Try



Funziona!!!!!!!!!!
superjolly!!!!!!!
grandissimo... e io che provavo quella roba incomprensibile preasa dall'help!!!!
grandissimo mi sei stato veramente d'aiuto...

p.s.
il codice che ho postato è quello funzionante con la piccla modifica della dichiarazione...thanks!