Pliki o dostępie swobodnym

Transkrypt

Pliki o dostępie swobodnym
(C)2005 RoG@j
Pliki
o dostępie swobodnym
Wprowadzenie
Definiowanie typu zmiennej
Zapisywanie rekordów w pliku
Odczytywanie rekordu
Definiowanie typu zmiennej
!
!
!
VBA pozwala na definiowanie własnych
typów zmiennych
Potrzeba ta najczęściej pojawia się przy
obsłudze baz danych
Programy do obsługi baz danych
przechowują dane w tabelach.
!
!
!
Wiersz nazywany jest rekordem
Kolumna to pole
Każdy rekord ma taką sama strukturę
Instrukcja Type
!
!
!
!
VBA18
Początek definicji typu zmiennej – słowo
kluczowe Type
Koniec definicji – End Type
Typ zmiennej definiuje się na poziomie
modułu (w sekcji General) – nie można
definiować typu zmiennej wewnątrz
procedury.
Domyślnie zmienne te maja zasięg publiczny
2005-03-22
Wprowadzenie
!
!
!
Pliki o dostępie swobodnym są najczęściej
wykorzystywane do zapisu informacji
podzielonych na wiele bloków o identycznej
strukturze.
Każdy rekord jest odrębnym obiektem, który
można odczytać niezależnie od pozostałych
Aby móc to zrealizować trzeba
zadeklarować zmienną, która odzwierciedla
strukturę rekordów
Definiowanie typu zmiennej
!
Definiując typ zmiennej odzwierciedlającej
strukturę rekordu można:
!
!
!
!
Określić liczbę tych elementów
Ich długość
Typ danych przechowywanych w danym
elemencie
Nowy typ zmiennej definiuje się za pomocą
instrukcji Type
Przykład deklaracji typu
Type Osoba
ID As Integer
Imie As String * 20
Nazwisko As String * 20
Wiek As Byte
End Type
1
(C)2005 RoG@j
Zapisywanie rekordów w pliku
O co tu chodzi?
Sub ZapiszRekord()
Dim NowaOsoba As Osoba
Dim NumerRekordu As Byte
Open "Osoby.txt" For Random As #1 Len = Len(NowaOsoba)
NumerRekordu = 1
NowaOsoba.ID = NumerRekordu
NowaOsoba.Imie = "Robert"
NowaOsoba.Nazwisko = "Gajewski"
NowaOsoba.Wiek = 50
Put #1, NumerRekordu, NowaOsoba
Close #1
End Sub
!
Wyjaśnień cd.
Odczytywanie rekordu
!
!
!
!
!
VBA18
2005-03-22
Do zapisywania informacji w pliku o dostępie
bezpośrednim służy Put
Put #1, NumerRekordu, NowaOsoba
Ostatnia operacja jest zamknięcie pliku (jak
dla plików o dostępie sekwencyjnym)
Zawartość pliku jest podzielona na rekordy o
jednakowej długości
Rekordy można oczywiście odczytywać…
!
!
Deklaracje powołują nowy rekord i licznik
rekordów, który może się przydać
Open otwiera plik – Random określa plik o
dostępie bezpośrednim
Argument Len oznacza długość rekordu
!
!
!
!
!
Wyznaczamy go funkcją Len()
Dostęp do poszczególnych pól rekordów
zapewnia .
NazwaRekordu.NazwaPola
Dowolny rekord zapisany w pliku o dostępie
swobodnym można odczytać za pomocą Get
Get #NumerPliku, [NumerRekordu], NazwaZmiennej
Jeśli pominiemy NumerRekordu to następuje
odczytanie następnego rekordu po tym, który
został odczytany ostatnio
Przykład czytania… (1)
Przykład czytania… (2)
Sub CzytajRekord()
Dim Rekord As Osoba
Dim NumerRekordu As Byte
Dim Numer As Byte
Dim Imie As String
Dim Nazwisko As String
Dim Wiek As Byte
…
End Sub
Sub CzytajRekord()
…
Open "Osoby.txt" For Random As #1 Len = Len(Rekord)
Get #1, 1, Rekord
Numer = Rekord.ID
Imie = Rekord.Imie
Nazwisko = Rekord.Nazwisko
Wiek = Rekord.Wiek
MsgBox Imie & " " & Nazwisko & " " & Wiek
Close #1
End Sub
2

Podobne dokumenty