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.
Open plikd For Input As #1 Open plikw For Output As #2 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 Zamykanie 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) Ważne jest, żeby wewnątrz pętli While Not EOF(1) ... Wend znajdowała się instrukcja czytania 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 na koniec pliku. Bez tej instrukcji pętla While Not EOF(1) ... Wend będzie działała w nieskończoność. While Not EOF(1) ….. Input #1, nr, x,y … Wend
Wyszukiwanie danych w pliku tekstowym: Liczby wpisane w polach tekstowych oznaczających numery punktów A i B podstawiane są pod zmienne: nra i nrb . nra = Val(nrAt.Text) nrb = Val(nrBt.Text) 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 Wend Close #1 End Sub
Open PLIKD For Input As 1 For i = 1 To pk ………….. Input #1, Nr, X, Y 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 1 For 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.
Ta sama operacja wykonana za pomocą instrukcji While Not EOF Open PLIKD For Input As 1 i=0 While Not EOF(1) i=i+1 Input #1, nr, x, y XP(i)=X YP(i)=Y Wend
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