Programowanie w języku Visual Basic Zapisywanie danych Andrzej Borowiecki Kraków 2009
Feb 01, 2016
Programowanie w języku Visual Basic
Zapisywanie danych
Andrzej Borowiecki
Kraków 2009
Otwarcie pliku tekstowego do zapisywania
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
- jeżeli chcemy dopisywać (Append) do istniejącego pliku
Pisanie wyników do pliku tekstowegoDo zapisywania wyników w pliku tekstowym można wykorzystać dwie instrukcje Write i Print:
Write #2, nr, x, yPrint #2, nr, x, y
Sposób zapisywania danych w pliku przez te dwie instrukcje jest różny:
Write:"A",1000,1000"B",2000,2000"C",1000,2000
Print:A 1000 1000B 2000 2000C 1000 2000
Zapisywanie za pomocą instrukcji WRITE jest korzystne, kiedy np. numery (nazwy) punktów zawierają litery. Wtedy instrukcja do czytania z pliku - INPUT z łatwością odróżni nazwę punktu od współrzędnej, ponieważ są oddzielone przecinkiem, a tekst jest wzięty w cudzysłowy:
"A",1000,1000
Jak widać przecinek służy do oddzielania zmiennych od siebie, a nie części całkowitej od ułamkowej.
Te same zmienne zapisane instrukcją PRINT:
A 1000 1000
Nie wiadomo, gdzie kończy się nazwa punktu, a gdzie zaczyna się współrzędna.
Private Sub CommandButton6_Click() Open PLIKW For Append As #2 Write #2, nra, nrb, DAB, AZYM Close #2End Sub
Proste zastosowanie instrukcji WRITE w sposób pokazany poniżej:
22,23,3.1950743344259,237.3781462494511,2,32.1081687424026,97.858242633696411,21,32.1081687424026,97.858242633696411,21,52.7096850680637,275.874894956503
prowadzi do powstania pliku tekstowego, którego czytelność dla człowieka pozostawia wiele do życzenia:
Oczywiście komputer nie będzie miał żadnych kłopotów z odczytem.
Raport przeznaczony dla człowieka musi mieć bardziej uporządkowaną formę. Tym razem stosujemy instrukcję PRINT:
2 3 33.4443208927021 95.2176649156501 2 12 62.1943188719988 87.3992818674916 11 23 54.6244496539166 276.548844101659 23 28 29.0341178613983 213.117019226048
Private Sub CommandButton6_Click()
Open PLIKW For Append As #2 Print #2, nra, nrb, DAB, AZYM Close #2
End Sub
Konieczne jest sformatowanie zapisywanych wartości oraz dodanie nagłówka:
Open PLIKW For Append As #2 Print #2, Format(nra, "@@@@"), Format(nrb, "@@@@"),
Format(DAB, "###.00"), Format(AZYM, "###.0000") Close #2
OD DO DŁUGOŚĆ AZYMUT 22 23 3.20 237.3781 22 21 2.50 194.3898 22 25 65.38 217.0296
Open PLIKW For Append As #2 Print #2, " OD DO DŁUGOŚĆ AZYMUT ”Close #2
Dodawanie obiektów do ToolBoxJeżeli w ToolBox nie występuje jakiś obiekt np. tabelka vsFlexArray , trzeba uzupełnić zawartość ToolBox:- kliknąć prawym klawiszem myszy na wolne miejsce wewnątrz ToolBox,- wybrać opcję: Additional Controls- zaznaczyć pole obok Formant VideoSoft FlexArray- kliknąć OK
Instrukcje związane z tabelą:
tab1.Cols = - określa liczbę kolumn w tabeli
tab1.Rows = - określa liczbę wierszy w tabeli
tab1.Col = - określa aktualną kolumnę w tabeli
tab1.Row = - określa aktualny wiersz w tabeli
tab1 = x - wstawia zmienną x do tabeli w miejscu określonym przez aktualny wiersz i kolumnę
y = tab1 - podstawia pod zmienną y zawartość tabeli określoną przez aktualny wiersz i kolumnę
Private Sub UserForm_Activate()
tab1.Rows = 1: tab1.Cols = 5 tab1.Row = 0
tab1.Col = 1: tab1 = "OD" tab1.Col = 2: tab1 = "DO" tab1.Col = 3: tab1 = "Długość" tab1.Col = 4: tab1 = "Azymut"
End Sub
Public Sub Obliczenia() DX = XB - XA DY = YB - YA DAB = Sqr(DX ^ 2 + DY ^ 2) AZYM = azymut tab1.Rows = tab1.Rows + 1: tab1.Row = tab1.Rows - 1 tab1.Col = 0: tab1 = tab1.Row tab1.Col = 1: tab1 = nra tab1.Col = 2: tab1 = nrb tab1.Col = 3: tab1 = Format(DAB, "#.00") tab1.Col = 4: tab1 = Format(AZYM, "#.0000")End Sub
OD DO DŁUGOŚĆ AZYMUT 55 22 59.41 330.4895 1 2 32.11 97.8582
Private Sub CommandButton7_Click() tab1.Col = 1: t1 = tab1 tab1.Col = 2: t2 = tab1 tab1.Col = 3: t3 = tab1 tab1.Col = 4: t4 = tab1 Open PLIKW For Append As #2 Print #2, Format(t1, "@@@@"), Format(t2, "@@@@"),
Format(t3, "###.00"), Format(t4, "###.0000") Close #2End Sub
Przycisk: Wybrany wiersz do raportu