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

Podobne dokumenty