programowanie w języku visual basic
DESCRIPTION
Programowanie w języku Visual Basic. Czytanie danych z pliku tekstowego Andrzej Borowiecki Kraków 2009. W celu określenia nazwy i lokalizacji pliku tekstowego zawierającego numery punktów i współrzędne można zastosować instrukcję InputBox. 2.6.2. Otwarcie pliku tekstowego - PowerPoint PPT PresentationTRANSCRIPT
Programowanie w języku Visual Basic
Czytanie danych z pliku tekstowego
Andrzej Borowiecki
Kraków 2009
W celu określenia nazwy i lokalizacji pliku tekstowego zawierającego numery punktów i współrzędne można zastosować instrukcję InputBox.
2.6.2. Otwarcie pliku tekstowego
Jeżeli chcemy czytać dane z pliku tekstowego, na przykład o nazwie plikd – otwieramy go do czytania (Input) instrukcją:
Open plikd For Input As #1
Jeżeli chcemy zapisywać wyniki do pliku tekstowego, na przykład o nazwie plikw –otwieramy go do pisania (Output) instrukcją:
Open plikw For Output As #2
Czytanie danych z pliku tekstowego
W dalszym ciągu programu każdy otwarty plik jest identyfikowany przez swój numer. Na przykład instrukcja czytania danych z pliku o numerze 1 ma następującą postać:
Input #1, Nr, x, y
Zamykanie pliku tekstowego
Każdy plik tekstowy po wykorzystaniu należy zamknąć instrukcją Close zawierającą numer tego pliku. Na przykład:
Close #1
Przeglądanie pliku tekstowego o nieokreślonej długości:
Instrukcja While Not EOF(n)… Wend
Pierwsza jej część: While Not EOF(1) oznacza:
Dopóki Nie Koniec pliku (1).
Jeżeli program nie natrafi na koniec pliku nr 1, wykonywane są dalsze instrukcje aż do linii zawierającej Wend, po czym program wraca na początek pętli do linii While Not EOF(1) .
Ważne jest, żeby wewnątrz pętli While Not EOF(1) ... Wend znajdowała się instrukcjaczytania z pliku (INPUT #1, lista zmiennych ) na przykład:
Input #1, nr, x,y
która czyta kolejne wiersze pliku tekstowego, co prowadzi w efekcie do natrafienia nakoniec pliku. Bez tej instrukcji pętla While Not EOF(1) ... Wend będzie działała wnieskończoność.
While Not EOF(1)…..Input #1, nr, x,y……
Wend
Wyszukiwanie danych w pliku tekstowym:
nra = Val(nrAt.Text) nrb = Val(nrBt.Text)
Liczby wpisane w polach tekstowych oznaczających numery punktów A i B podstawiane są pod zmienne: nra i nrb .
Po wczytaniu wiersza z pliku tekstowego nrxy.txt wczytany numer nr jest porównywany z numerem wpisanym w okienku – jeżeli są identyczne, współrzędne X i Y są wpisywane do okienek na formularzu.
If nra = nr Then XAt.Text = x YAt.Text = y End If
Analogicznie dla punktu B
przycisk Plik z danymi:
Private Sub CommandButton3_Click()
PLIKD = InputBox("Podaj nazwę pliku ze współrzędnymi", "CZYTANIE DANYCH", "D:\VB1\novak\nrxy.txt") ‘wszystko w jednej lini!!!
End Sub
Private Sub CommandButton4_Click() nra = Val(nrAt.Text) nrb = Val(nrBt.Text) Open PLIKD For Input As 1 While Not EOF(1) Input #1, nr, x, y If nra = nr Then XAt.Text = x YAt.Text = y End If If nrb = nr Then XBt.Text = x YBt.Text = y End If Wend Close #1End Sub
Instrukcja powtarzania: For ... To ... Next
Zapis For i = 1 To pk oznacza: Dla i zmieniającego się od 1 do pk.Dla każdej , kolejnej wartości i wykonywane są wszystkie instrukcje programu zawarte między linią For i linią Next i. Czyli zostaną one wykonane pk razy.
Open PLIKD For Input As 1For i = 1 To pk ………….. Input #1, Nr, X, Y XP(i)=X YP(i)=Y …………..Next i
Zmienną i nazywamy zmienną sterującą. Musi ona być zmienną całkowitą – typu integer.
i=0While Not EOF(1) i=i+1 Input #1, nr, x, y XP(i)=X YP(i)=YWend
Ta sama operacja wykonana za pomocą instrukcji While Not EOF
Open PLIKD For Input As 1
Zmienne tablicowe
Zmienne tablicowe, to zbiór zmiennych, które mają tę samą nazwę, a rozróżniane są za pomocą indeksu.
Inaczej mówiąc są to n-wymiarowe tabele liczb, a indeks (lub indeksy) wskazują położenie danej liczby w tabeli.
Wielkość tabeli i typ zmiennych w tabeli określamy za pomocą instrukcji Dim:
Przykłady:
Dim nazwa(20) as string - tablica zmiennych tekstowych o 20 wierszach
Dim x(20) as double, y(20) as double - tablice zmiennych rzeczywistych
Zmiana wymiaru tablicy w trakcie obliczeń
Redim MyArray(10) ' Zmiana wymiaru do 10 elementów.
For I = 1 To 10 ' Pętla wykonana 10 razy
MyArray(I) = I ' Pod i-ty element podstawia i
Next I