Microsoft Visual Basic 2008 Express Edition, r. ak. 2013/2014
Transkrypt
Microsoft Visual Basic 2008 Express Edition, r. ak. 2013/2014
Microsoft Visual Basic 2008 Express Edition, r. ak. 2013/2014 Zajęcia 9 - uzupełnienia: Praca z plikami. Okna OpenFileDialog i SaveFileDialog, obiekty StreamReader i StreamWriter, odczyt i zapis (wierszami) całej zawartości pliku Public Class Form1 ' ' Odczyt i zapis wierszami całej zawartości pliku z wykorzystaniem pola listy. ' Private Sub btnCzytaj_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnCzytaj.Click ' ' Otwarcie okna poszukiwania pliku do odczytu dlgOtworz.ShowDialog() End Sub Private Sub dlgOtworz_FileOk(ByVal sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) Handles dlgOtworz.FileOk ' ' Odczyt zawartości pliku do pola listy, wierszami, do końca pliku. Dim srCzytnik As System.IO.StreamReader Dim strKom, strTyt As String Dim strWiersz As String Try ' ' Otwarcie do odczytu pliku wybranego w oknie dialogowym srCzytnik = New System.IO.StreamReader(dlgOtworz.FileName) ' ' Pokazanie ścieżki dostępu do pliku txtSciezka.Text = dlgOtworz.FileName ' ' Odczyt całej zawartości pliku wierszami i dodanie ' każdego wiersza do listy jako jej nowego elementu Do While Not srCzytnik.EndOfStream strWiersz = srCzytnik.ReadLine lstPlik.Items.Add(strWiersz) Loop ' ' Zwolnienie zasobów srCzytnik.Close() srCzytnik.Dispose() Catch ex As Exception strKom = ex.Message strTyt = "Odczyt z pliku " & dlgZapisz.FileName MessageBox.Show(strKom, strTyt, MessageBoxButtons.OK, _ MessageBoxIcon.Error) End Try End Sub Private Sub btnWyczysc_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnWyczysc.Click ' ' Czyszczenie listy i pola tekstowego ścieżki do pliku lstPlik.Items.Clear() txtSciezka.Clear() End Sub Private Sub btnZapisz_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnZapisz.Click ' ' Otwarcie okna dialogowego, w którym zostanie określone, ' do którego pliku ma zostać zapisana zawartość listy dlgZapisz.ShowDialog() End Sub Private Sub dlgZapisz_FileOk(ByVal sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) Handles dlgZapisz.FileOk ' ' Zapisywanie w kolejnych rekordach pliku zawartości listy, ' zgodnie z ustawieniem pola trybu (dopisywanie/zastępowanie) Dim strElement As String Dim strKom, strTyt As String Dim swPisak As System.IO.StreamWriter ' Try ' ' Otwarcie pliku do zapisu swPisak = New System.IO.StreamWriter(dlgZapisz.FileName, _ cbDopisz.Checked) ' ' Pokazanie ścieżki dostępu do pliku txtSciezka.Text = dlgOtworz.FileName ' ' Wpisanie do pliku całej zawartości listy For Each strElement In lstPlik.Items swPisak.WriteLine(strElement) Next ' ' Zwolnienie zasobów i wyczyszczenie pola nowego elementu listy txtNowyWiersz.Clear() ' swPisak.Close() swPisak.Dispose() Catch ex As Exception strKom = ex.Message strTyt = "Zapis do pliku " & dlgZapisz.FileName MessageBox.Show(strKom, strTyt, MessageBoxButtons.OK, _ MessageBoxIcon.Error) End Try End Sub Private Sub btnDodajWiersz_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles btnDodajWiersz.Click ' ' Dodanie do listy nowego wiersza i wyczyszczenie pola ścieżki do pliku txtSciezka.Clear() lstPlik.Items.Add(txtNowyWiersz.Text) End Sub End Class