• Nie Znaleziono Wyników

Ćwiczenie VB_7.1_Zapis/odczyt z pliku Zadanie. Rozwi

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenie VB_7.1_Zapis/odczyt z pliku Zadanie. Rozwi"

Copied!
4
0
0

Pełen tekst

(1)

Copyright © 2014, Janusz Bonarowski 1

Ć wiczenie VB_7.1_Zapis/odczyt z pliku

Zadanie. Rozwiązanie równania kwadratowego

Wykonajmy aplikację pozwalająca obliczać pierwiastki równania kwadratowego

2 0

= +

⋅ +

x B x C

A . Niech współczynniki równania będą wprowadzane z klawiatury lub wczytywane z pliku tekstowego. Niech dane mogą być zapisywane do pliku tekstowego, patrz propozycja formularza ma rys. 1.

Rys. 1. Propozycja formularza wraz z obiektami OpenFileDialog i SaveFileDialog

Podczas wczytywania danych lub podczas ich zapisywania bardzo wygodną i popularną formą stosowaną w środowisku Windows jest ono dialogowe pokazane na rys. 2.

Rys. 1. Typowe okno dialogowe Otwórz/Zapisz

(2)

Copyright © 2014, Janusz Bonarowski 2 Kontrolkami pozwalającymi używać takich okien są obiekty OpenFileDialog i SaveFileDialog znajdujące się na pasku Toolbox na zakładce Dialogs. Oba te obiekty dodajmy, w stanie

projektowania, do formularza. Pojawiają się na dolnym pasku pod właściwym formularzem, patrz rys. 1. Pozostawimy im nazwy domyślne.

Kody procedur

Private Sub btnOblicz_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnOblicz.Click 'Rozwiazanie równania

Dim A, B, C, D, X1, X2 As Single lblOdp.Text = ""

Try

A = CSng(txtA.Text) If A = 0 Then

lblOdp.Text = "To nie jest równanie kwadratowe"

Exit Sub End If

B = CSng(txtB.Text) C = CSng(txtC.Text) D = B ^ 2 - 4 * A * C If D < 0 Then

lblOdp.Text = "Delta < 0" & vbCrLf & _ "Brak pierwiastków"

Else

X1 = (-B - Math.Sqrt(D)) / (2 * A) X2 = (-B + Math.Sqrt(D)) / (2 * A)

lblOdp.Text = "X1=" & CStr(X1) & vbCrLf & _ "X2=" & CStr(X2)

End If

Catch ex As Exception

lblOdp.Text = "Błąd danych"

End Try End Sub

Private Sub btnDaneZPliku_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDaneZPliku.Click 'Otwarcie okna dialogowego OpenFileDialog1

OpenFileDialog1.InitialDirectory = CurDir() OpenFileDialog1.Title = "Wybierz plik z danymi"

OpenFileDialog1.Filter = _

"Plik danych (*.txt)|*.txt|All Files(*.*)|*.*"

OpenFileDialog1.FileName = ""

OpenFileDialog1.ShowDialog() End Sub

(3)

Copyright © 2014, Janusz Bonarowski 3 Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, _ ByVal e As System.ComponentModel.CancelEventArgs) _ Handles OpenFileDialog1.FileOk 'Wczytanie danych z pliku

Dim plik As String

'Kasowanie poprzednich wartości txtA.Text = ""

txtB.Text = ""

txtC.Text = ""

lblOdp.Text = ""

Try

' Odczytanie ścieżki do pliku.

plik = OpenFileDialog1.FileName

' (1) Otwarcie pliku do odczytu.

FileOpen(1, plik, OpenMode.Input)

' (2) Odczytanie danych.

Input(1, txtA.Text) Input(1, txtB.Text) Input(1, txtC.Text)

' (3) Zamknięcie pliku.

FileClose(1)

Catch ex As Exception FileClose(1)

MsgBox("Błąd nr = " & Err.Number.ToString, , _ "Błąd w pliku danych") 'If Err.Number = 62 Then

' MsgBox("Zbyt mała liczba danych", _

MsgBoxStyle.Critical, "Błąd w pliku danych") 'End If

End Try End Sub

(4)

Copyright © 2014, Janusz Bonarowski 4 Private Sub btnZapisz_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnZapisz.Click 'Wyświetlenie okna dialogowego

SaveFileDialog1.InitialDirectory = CurDir() SaveFileDialog1.Title = "Zapisz plik z danymi"

SaveFileDialog1.Filter = _

"Plik danych (*.txt)|*.txt|All Files(*.*)|*.*"

SaveFileDialog1.ShowDialog() End Sub

Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, _ ByVal e As System.ComponentModel.CancelEventArgs) _ Handles SaveFileDialog1.FileOk 'Zapis danych do pliku

Dim plik As String Try

'Pobranie scieżki do pliku

plik = SaveFileDialog1.FileName

'(1) Otwarcie pliku do zapisu.

FileOpen(1, plik, OpenMode.Output)

'(2) Odczytanie danych.

PrintLine(1, txtA.Text) PrintLine(1, txtB.Text) PrintLine(1, txtC.Text)

'(3) Zamknięcie pliku.

FileClose(1)

Catch ex As Exception FileClose(1)

MsgBox("Błąd nr: " & Err.Number, MsgBoxStyle.Critical, _ "Błąd zapisu")

End Try End Sub

Uwaga1

Proszę zwrócić uwagę, że zdarzenie Click na przyciskach btnDanzeZPliku i btnZapisz jedynie wyświetla odpowiednie okna dialogowe (OpenFileDialog1 i Save FileDialog1) natomiast właściwa akcja odczytywania danych z pliku lub zapisu danych do pliku odbywa się oddzielnych

procedurach OpenFileDialog1_FileOk i SaveFileDialog1_FileOk.

Uwaga2

Pokazana technika zapisu i odczytu danych składa się zawsze z 3 kroków:

(1) Otwarcie pliku,

(2) Zapis lub odczyt danych (3) Zamknięcie pliku.

Cytaty

Powiązane dokumenty

przesłanie zdjęć notatki do 5.04 razem z notatkami z 3.04

Sprawdzenie zapisu notatki w zeszycie będzie losowe (losowo wybrana osoba będzie musiała wysłać zdjęcie

Przyjmując, że powyższe wyliczenie stanowi katalog zamknięty, można przyjąć następującą formułę domniemania języka potocznego:” Jeżeli znaczenie danego terminu

Zwrócić uwagę na poglądy Szymona Gajowca, Seweryna Baryki i Lulka dotyczące poprawy sytuacji w

„Statystyk”. Korzystając z informacji zawartych w pliku pesel-dane.txt oraz dostępnych narzędzi informatycznych, wykonaj poniższe polecenia. Odpowiedzi do poszczególnych

Ponadto będziemy przenosić dane w postaci kolumn wytwarzane tym programem do Excela aby każda kolumna była w innej kolumnie.. tak jak w pliku „Dane przeniesione z

Utwórz nowy projekt typu Java Application, nadaj projektowi nazwę Projekt31 a klasie głównej - nazwę Zadanie1.. Na początku metody main() , pod nagłówkiem zadeklaruj trzy

Ukazał się oczekiwany drugi zeszyt tomu czwartego Bibliografii filozofii polskiej 1896-1918, bardzo cennego przedsięwzięcia, realizowanego od wielu lat w Instytycie Filozofii