Microsoft, Programmazione, VB.NET, Windows

Leggere o Salvare un file usando le classi SteamReader e Stream Writer insieme ad OpenFileDialog e SaveFileDialog

Salve a tutti, in questo articolo vi posto degli spezzoni di codice dove ho usato le classi StreamReader e StreamWriter insieme alle classi OpenFileDialog e SaveFileDialog, Su google ho trovato pochi riferimenti su queste due classi usate insieme, quindi ho perso una buona decina di minuti per crearmi queste funzioni in modo tale che funzionassero a dovere.

1 In questo esempio mostro come leggere un file di testo usando la classe StreamReader e OpenFileDialog, inoltre è stato implementato un metodo per caricare i file rtf.

 ''' 
''' Questa funzione serve per aprire file di testo, in vari formati compreso quello .RTF ''' Per fare ciò vengono usati 2 metodi uno usa Path.GetExstension per trovare ''' l'estensione del file che in questo caso è .RTF mentre l'altro usa la classe StreamReader ''' per leggere il file. '''

 

'''Questo parametro dev'essere usato per un OpenFileDialog.Filename '''La codifica che assume il file di testo in questo caso la codifica è ANSI ''' Se Return = True allora il file è stato aperto correttamente, mentre se ''' Return = Err() allora si è verificata un eccezione che il programma non ha saputo ''' gestire. ''' ''' hackerscrackers for iNotes Pad Friend Function ReadTextFile(FileToRead As String, _Encoding As Encoding) Using openfile As New OpenFileDialog Try openfile.Filter = "File Di Testo (*.txt)|*.txt|Documento .RTF|*.rtf|Tutti I File (*.*)|*.*" 'Se il file è in formato .RTF allora l'applicazione lo eseguira usando 'questo comando, mentre se non è .RTF usera il metodo alternativo. If openfile.ShowDialog = Windows.Forms.DialogResult.OK Then If Path.GetExtension(openfile.FileName) = ".rtf" Then RichTextBox1.LoadFile(openfile.FileName) Return True Exit Function End If ' Crea un Nuovo StreamReader Dim sr As New StreamReader(openfile.FileName, Encoding.Default) ' Inserisce tutto il testo del file nella variabile Dim str As String = sr.ReadToEnd() ' Chiude StreamReader sr.Close() ' Visualizza il testo nella RichTextBox RichTextBox1.Text = str End If Catch ex As Exception 'mostro l'eccezione MsgBox(ex.Message, MsgBoxStyle.Critical) 'dico alla funzione che deve ritornare con un errore Return Err() 'faccio terminare la funzione perche è stato trovato un errore. Exit Function End Try End Using 'La funzione ritorna TRUE perche la lettura del file è stata completata con successo Return True End Function

 

2 In quest'altro esempio invece viene usata la classe StreamWriter e SaveFileDialog per salvare un file usando la classe StreamWriter.

 

 

 

    ''' 

 

''' Questa funzione serve per salvare un file di testo, in vari formati messi a ''' disposizione, tra i quali quello .RTF '''

 

'''Questo parametro dev'essere usato per un SaveFileDialog.Filename '''La codifica che avrà il file di testo quando verra salvato in questo caso la codifica è ANSI ''' Se Return = True allora il file è stato aperto correttamente, mentre se ''' Return = Err() allora si è verificata un eccezione che il programma non ha saputo ''' gestire. ''' ''' hackerscrackers for iNotes Pad Friend Function SaveTextFile(FileToSave As String, _Encoding As Encoding) Using SaveFile As New SaveFileDialog Try SaveFile.Filter = "File Di Testo (*.txt)|*.txt|Documento .RTF|*.rtf|Tutti I File (*.*)|*.*" If SaveFile.ShowDialog = Windows.Forms.DialogResult.OK Then ' Creo un Nuovo StreamWriter Dim wr As New StreamWriter(SaveFile.FileName, True, Encoding.Default) 'Salvo il testo wr.Write(RichTextBox1.Text) wr.Close() End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) Return Err() Exit Function End Try End Using Return True End Function

 

 

 

 

 

Entrambi gli esempi sono stati inseriti un una Funzione,

 

 

 

nella prima funzione chiamata:

 

 

 

ReadTextFile(FileToRead As String, _Encoding As Encoding)

 

 

 

come vedete nella funzione ho inserito 2 variabili

 

 

 

la prima serve per il vostro openfiledialog, openfiledialog.filename

 

 

 

la seconda per la codifica che vogliamo dare al file di solito la codifica è Encoding.Default = codifica ANSI

 

 

 

 

 

 

 

la stessa cosa avviene nel secondo esempio tranne per il fatto che da usare openfiledialog dovrete usare Savefiledialog.

 

 

 

SaveTextFile(FileToSave As String, _Encoding As Encoding)

 

 

 

 

 

 

 

Spero vi possano essere utili queste due funzioni.

 

 

 

Tagged , , ,

Lascia un commento