Access

  MS Access 2010+  |  Przetwarzanie plików  |   VBA 7.0



• Słów kilka o plikach.

Plik danych

Plik danych, (plik komputerowy), zwykle krótko plik – jest to uporządkowany zbiór danych (bitów, bajtów, rekordów itp.) o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość. Nazwa pliku nie jest jego częścią, lecz jest przechowywana w systemie plików.
W oparciu o artykuł: Wikipedia. Plik danych

Rodzaje (typy) plików.

Możemy wyróżnić dwa podstawowe typy plików
• plik binarny
• plik tekstowy

Plik tekstowy (ang.) text file – plik zawierający dane w postaci alfanumerycznej. Kod alfanumeryczny (ang. alphanumeric code) – kod, w którym do zapisu tekstów i liczb, przedstawianych jako ciągi cyfr, używa się określonych w danym kodzie znaków. W technice cyfrowej określonym znakom kodu nadaje się wartości liczbowe.
Przykładami kodów alfanumerycznych są kody: ASCII ISO/IEC 646, ISO 8859, Unicode, EBCDIC, Windows-1250. Niektóre z kodów dopuszczają także kody sterujące, znaki diakrytyczne i znaki specjalne np. Unicode.
Pliki tekstowe są nadal szeroko wykorzystywane, głównie jako pliki konfiguracyjne, dokumentacje czy instrukcje dla systemu operacyjnego, programów, aplikacji – ogólnie dla oprogramowania. Nazwy plików tekstowych mają zazwyczaj rozszerzenie *.txt.

Przykładem pliku tekstowego może być plik źródłowy strony internetowej, z rozszerzeniem nazwy *.htm lub *.html. Programy pisane w języku skryptowym również zapisywane są w plikach tekstowych, z dowolnym rozszerzeniem nazwy. W oparciu o artykuł: Wikipedia. Plik tekstowy  

Plik binarny – plik o dowolnej zawartości, oznacza wszystkie pliki poza plikami tekstowymi zawierającymi tekst zapisany w ustalonym sposobie kodowania znaków drukarskich, wraz z kodami sterującymi, w tym także kod znaku końca pliku – ^Z.

Pliki binarne tworzone przez programy mogą posiadać wewnętrzną strukturę, której naruszenie może sprawić, że plik stanie się niepoprawny dla programów je obsługujących. Niemal wszystkie języki wysokiego poziomu posiadają oddzielne mechanizmy do obsługi plików tekstowych i binarnych.

Plików binarnych nie da się edytować przy pomocy programów do edycji tekstu, programy te zakładają, że plik zawiera tekst i interpretują dane będące kodami sterującymi. Plik danego typu zwykle może być edytowany tylko przez programy obsługujące jego format pliku. Przy braku odpowiedniego programu, pliki binarne można edytować za pomocą edytora heksadecymalnego, który prezentuje zawartość pliku w postaci ich kodów szesnastkowych, czasami też dziesiętnie oraz tekstu ASCII, oraz umożliwia edycję poszczególnych bajtów pliku. W oparciu o artykuł: Wikipedia. Plik binarny

 

Innymi słowami - plik binarny to po prostu ciąg bajtów bez względu na rodzaj zapisanej w pliku informacji. Każdy plik możemy potraktować jak plik binarny i „na piechotę” przetwarzać jego zawartość bajt po bajcie, a czasami nawet bit po bicie.

Plik tekstowy o stałej szerokości pól.

W plikach tekstowych o stałej szerokości pól każdy rekord również występuje w innym wierszu. Pola w każdym z rekordów mają jednak stałą długość. Jeśli zawartość pola nie jest wystarczająco długa, wyrównywane jest do określonej długości przez dodanie do niego wymaganej ilości spacji.

W pliku takim wartości tekstowe, na przykład imiona i nazwiska, nie są ujęte w cudzysłów, gdyż nie ma potrzeby wyróżniania wartości tekstowych, ponieważ każde pole ma określoną długość. Wszystko, co znajduje się w obrębie pozycji pola, jest interpretowane jako dane i nie wymaga ograniczników.

Plik tekstowy o wierszami o stałej szerokości.

W plikach tekstowy o wierszami o stałej szerokości każdy wiersz reprezentuje jeden wiersz w tabeli bazy danych. Każde pole w wierszu zajmuje dokładnie tyle samo znaków co odpowiadające mu pole w wierszu powyżej i poniżej wiersza Każde pole danych jest uzupełniane spacjami do prawej w celu wypełnienia szerokości przydzielonej dla pola.

Plik CSV


CSV (ang. Comma-S/eparated Values, wartości rozdzielone przecinkiem) – format przechowywania danych w plikach tekstowych. Pliki CSV mają nieco bardziej skomplikowany format. Poszczególne pola są oddzielone od siebie przecinkami (,), a każde z pól zajmuje tyle miejsca, ile potrzeba, by pomieścić dane. Ogólnie rzecz biorąc, pomiędzy polami w pliku CSV jest niewiele miejsca. Zaletą plików CSV jest możliwość zapisania znacznie większej ilości danych w pliku o tym samym rozmiarze, ponieważ każde pole zajmuje tylko tyle miejsca na dysku, ile potrzeba.

W oparciu o artykuł: Wikipedia. Plik csv

Istnieje wiele implementacji standardu pliku w formacie CSV – wiele z nich nie trzyma się ściśle wszystkich określonych poniżej zasad.

• Końce linii
Poszczególne rekordy rozdzielone są znakami końca linii vbNewLine (vbCrLf ).
Ostatnia linia w pliku może nie zawierać znaku końca.
Znak vbNewLine (vbCrLf ) może być elementem pola, które musi wtedy być ujęte w cudzysłowy.
• Separator
Wartości pól zgodnie z nazwą formatu rozdzielone są przecinkami.
Jako separator pól bywa także stosowany znak średnika (lub inny zgodnie z ustawieniami regionalnymi systemu) albo tabulator, jednak jest to niezalecane. W jednym pliku może być użyty tylko jeden rodzaj separatora
• Cudzysłów
Wartości pól mogą być ujęte w cudzysłowy,
Wartości zawierające używany znak separatora (przecinek, średnik, znak tabulacji lub znaki końca linii) muszą być ujęte w cudzysłów.
Aby w treści pola umieścić cudzysłów należy wpisać znak cudzysłowu dwukrotnie, całą wartość ujmując w cudzysłów.
• Uwagi
Spacje i inne białe znaki (w szczególności te przyległe do separatorów) należą do pól.
Pierwsza linia może stanowić nagłówek zawierający nazwy pól rekordów, jednak pierwszy wiersz pliku CSV w/g standardu ma takie samo znaczenie jak pozostałe.

Format CSV jako prostszy niż format DBF jest obsługiwany przez większość arkuszy kalkulacyjnych i programów bazodanowych, jednak wspomniana dowolność wyboru separatorów ogranicza jego przenośność. Aby obejść to utrudnienie, tworzy się specjalne makra lub pozwala na konfigurowanie separatorów.

Filtr konwersji CSV z pakietu Microsoft Office pracuje przy założeniu, że plik CSV używa przecinka jako separatora, tymczasem Microsoft Excel i Access wyświetlają i zapisują plik CSV w formacie zgodnym z ustawieniami regionalnymi systemu, czyli w przypadku języka polskiego używa średnika zamiast przecinka do rozdzielania pól. Aby umożliwić automatyczną konwersję, tworzone są dedykowane makra.



Plik XML

XML (ang. Extensible Markup Language, w wolnym tłumaczeniu Rozszerzalny Język Znaczników) – uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. Jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy heterogenicznymi (różnymi) systemami i znacząco przyczyniło się do popularności tego języka w dobie Internetu. XML jest standardem rekomendowanym oraz specyfikowanym przez organizację W3C.

Poprawny składniowo (ang. well-formed) dokument XML powinien być tworzony zgodnie z kilkoma zasadami:

  • Powinien zawierać deklarację XML, która musi być umieszczona na samym początku pliku oraz musi posiadać atrybut version, dopuszczalne wartości to 1.0 albo 1.1) oraz opcjonalnie atrybuty:
    • encoding – deklaruje zestaw znaków używanych w dokumencie XML, wartością domyślną jest kodowanie UTF-8 w systemie Unicode.
    • standalone – określa tryb dokumentu XML, może przyjmować wartość yes lub no. Jeśli ustawimy wartość na yes to będzie oznaczało, że dokument nie zawiera innych plików, które muszą zostać przetworzone wraz z dokumentem. Może to być np. zewnętrzny arkusz stylów lub definicja DTD;
  • Każdy element musi zaczynać się znacznikiem początku elementu, oraz kończyć identycznym znacznikiem końca elementu, wyjątek stanowią elementy puste, czyli takie, które nie zawierają żadnych danych, ani innych elementów, mogą zawierać atrybuty;
  • Nazwy elementów mogą zawierać znaki alfanumeryczne (litery a–z, A–Z oraz cyfry 0–9) oraz dowolny znak z przedziałów: c0-d6, d8-f6, f8-2ff, 370-37d, 37f-1fff, 200c-200d, 2070, 218f, 2c00-2fef, 3001-d7ff, f900-fdcf, fdfo-fffd, 10000-efffffi. Znak dwukropka zarezerwowany jest dla identyfikacji przestrzeni nazw, której nazwa dopisywana jest przed nazwą elementu.
  • Nazwy elementów nie mogą zaczynać się od znaku łącznika (-), kropki, czy cyfry.
  • Elementy można zagnieżdżać w sobie i wtedy każdy element znajdujący się wewnątrz innego elementu jest nazywany „dzieckiem” tego elementu, a element, wewnątrz którego znajdują się inne elementy, zwany jest „rodzicem” tych elementów.
  • Każdy element może zawierać atrybuty, które definiuje się w znaczniku początku elementu.
  • Informacje, które zawiera element, muszą być zapisane pomiędzy znacznikiem początku i końca elementu;
  • W danych, atrybutach oraz nazwach elementów nie mogą pojawiać się niektóre znaki. Przykładem może być znak mniejszości (<), lub ampersand (&). Znaków tych nie można używać, ponieważ parsery XML „widząc” np. znak mniejszości wewnątrz elementu stwierdzą, że jest to początek znacznika i dokument zostanie błędnie zinterpretowany. Specyfikacja XML daje możliwość używania takich znaków z wykorzystaniem predefiniowanych odniesień jednostki. Jeśli więc chcemy wstawić znak mniejszości (<), wpisujemy zamiast niego sekwencję &lt; (ang. less than), natomiast gdy chcemy wprowadzić znak ampersand (&), wpisujemy – &amp;
  • Jeżeli nie chcemy używać predefiniowanych odniesień jednostek, możemy część danych, które zawierają np. kod html lub xml, zapisać w sekcji danych znakowych, która nie będzie przetwarzana przez analizator składni XML. Znacznik początku sekcji danych znakowych to: <![CDATA[, a znacznik końca: ]]>.
  • W dokumencie XML możemy wykorzystywać komentarze, które zaczynają się znakami: <!--, a kończą: -->. Specyfikacja XML zezwala na wstawianie instrukcji przetwarzania, które są wykorzystywane do przeniesienia informacji do aplikacji. Instrukcje przetwarzania rozpoczynają się znakami: <?, a kończą: ?>.

W oparciu o artykuł: Wikipedia. Plik XML