Plik tekstowy: Różnice pomiędzy wersjami

Z MaSzyna
Skocz do: nawigacja, szukaj
(Include i parametryzacja)
(Przykład działania)
 
(Nie pokazano 15 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 6: Linia 6:
 
  (spacja)
 
  (spacja)
 
  (tabulator)
 
  (tabulator)
 +
(znak nowej linii)
 
  ; (średnik)
 
  ; (średnik)
 
  , (przecinek)
 
  , (przecinek)
 +
 +
Dla lepszej czytelności zalicza się stosowanie jedynie białych znaków, czyli spacji, tabulatora oraz znaku nowej linii.
  
 
Gdy zachodzi potrzeba, aby znak separatora był częścią tokenu, wówczas token należy ująć w cudzysłów, tak jak w poniższym przykładzie.
 
Gdy zachodzi potrzeba, aby znak separatora był częścią tokenu, wówczas token należy ująć w cudzysłów, tak jak w poniższym przykładzie.
 
  token1 token2 '''"token;3"''' token4
 
  token1 token2 '''"token;3"''' token4
 
  
 
== Komentarze ==
 
== Komentarze ==
W plikach tekstowych można stosować dwa typy komentarzy.
+
W plikach tekstowych można stosować komentarze. Są one ignorowane przez parser. Można w nich zapisywać notatki lub tymczasowo deaktywować wybrane wpisy.
  
 
=== Komentarz liniowy ===
 
=== Komentarz liniowy ===
 
Znakiem początkowym komentarza liniowego są dwa ukośniki, a jego końcem jest znak nowej linii:
 
Znakiem początkowym komentarza liniowego są dwa ukośniki, a jego końcem jest znak nowej linii:
  // ta treść jest zakomentowana
+
  <span style="color:gray;font-style:italic">// ta treść jest zakomentowana</span>
 
  ale ta już nie
 
  ale ta już nie
  
Linia 24: Linia 26:
 
Komentarzem blokowym można objąć wiele linii tekstu.
 
Komentarzem blokowym można objąć wiele linii tekstu.
 
Znakiem początkowym jest ukośnik i gwiazdka, a końcowym - gwiazdka i ukośnik.
 
Znakiem początkowym jest ukośnik i gwiazdka, a końcowym - gwiazdka i ukośnik.
 +
<span style="color:gray;font-style:italic">
 
  /* ta treść zajmuje
 
  /* ta treść zajmuje
 
  wiele linii
 
  wiele linii
 
  i jest
 
  i jest
 
  zakomentowana */
 
  zakomentowana */
 +
</span>
 
  ale ta już nie jest
 
  ale ta już nie jest
  
== Include i parametryzacja ==
+
== Include ==
 
Include jest poleceniem które pomaga w modularyzacji plików.  
 
Include jest poleceniem które pomaga w modularyzacji plików.  
Podczas wczytywania pliku, gdy parser trafi na polecenie include we wczytywanym pliku, zawartość pliku dołączonego za pośrednictwem polecenia include jest niejako "wklejana" w miejsce tego polecenia.
+
Podczas wczytywania pliku gdy parser trafi na polecenie include zawartość dołączonego pliku jest wklejana w miejsce tego polecenia.
 +
 
 +
<span style="color:tomato;font-weight:bold">include</span> ''file parameters'' <span style="color:tomato;font-weight:bold">end</span>
 +
 
 +
{| class="wikitable"
 +
|+ Opis parametrów
 +
! Nazwa
 +
! Znaczenie
 +
|-
 +
| '''file'''
 +
| Ścieżka do pliku, którego zawartość ma być podstawiona w miejsce wpisu.
 +
|-
 +
| '''parameters'''
 +
| Wartości, które zostaną podstawione w miejsce parametrów zdefiniowanych w pliku.
 +
|}
  
include <nazwa pliku> <lista parametrów> end
 
  
 
=== Parametry ===
 
=== Parametry ===
Polecenie include może przyjmować parametry, których wartości zostaną podstawione w miejsce określonych tokenów w dołączanym pliku.
+
Polecenie include może przyjmować wartości, które zostaną podstawione w miejsce ciągów parametrycznych w dołączanym pliku.
  
Parametr definiuje się za pomocą ciągu tekstowego:
+
==== Definicja parametru ====
 +
Parametr definiuje się za pomocą ciągu parametrycznego:
 
  (pX)
 
  (pX)
 
gdzie X jest kolejnym indeksem parametru (zaczynając od 1).
 
gdzie X jest kolejnym indeksem parametru (zaczynając od 1).
  
Przykładowa zawartość parametryzowanego pliku (nazwijmy go example.txt) może wyglądać tak:
+
==== Przykład działania ====
  to jest plik z parametrem. Cześć '''(p1)'''.
+
Przykładowa zawartość parametryzowanego pliku (nazwijmy go ''example.txt'') może wyglądać tak:
 +
  Cześć, jestem <span style="color:darkviolet;font-weight:bold">(p1)</span>. Mam <span style="color:darkviolet;font-weight:bold">(p2)</span> lat.
  
 
Dołączenie powyższego pliku za pomocą polecenia include:
 
Dołączenie powyższego pliku za pomocą polecenia include:
  include example.txt Jerzy end
+
  <span style="color:tomato;font-weight:bold">include</span> example.txt Jerzy 50 <span style="color:tomato;font-weight:bold">end</span>
 +
 
 +
Umieszczenie takiego polecenia spowoduje nastepującą interpretację zawartości pliku ''example.txt'':
 +
Cześć, jestem Jerzy. Mam 50 lat.
  
Umieszczenie takiego polecenia w pliku spowoduje nastepującą interpretację jego zawartości:
+
==== Zagnieżdżanie parametru ====
  to jest plik z parametrem. Cześć Jerzy.
+
Dopuszczalne jest także zagniezdzanie parametrów. Jesli zdefiniujemy np.
 +
<span style="color:tomato;font-weight:bold">include</span> foo.inc param1_i_<span style="color:darkviolet;font-weight:bold">(p3)</span> param2 param3 <span style="color:tomato;font-weight:bold">end</span>
 +
to parser przy odczytywaniu takiego include i napotkaniu tokena "wstaw_tutaj_(p1)_oraz_(p2)" wyprodukuje:
 +
  wstaw_tutaj_param1_i_param3_oraz_param2

Aktualna wersja na dzień 14:45, 6 lip 2022

Artykuł zawiera informacje na temat funkcjonowania plików tekstowych w symulatorze.

Tokeny i separatory

Plik tekstowy składa się z tokenów, czyli ciągów tekstu oddzielonych od siebie separatorami. Podstawowymi separatorami są znaki:

(spacja)
(tabulator)
(znak nowej linii)
; (średnik)
, (przecinek)

Dla lepszej czytelności zalicza się stosowanie jedynie białych znaków, czyli spacji, tabulatora oraz znaku nowej linii.

Gdy zachodzi potrzeba, aby znak separatora był częścią tokenu, wówczas token należy ująć w cudzysłów, tak jak w poniższym przykładzie.

token1 token2 "token;3" token4

Komentarze

W plikach tekstowych można stosować komentarze. Są one ignorowane przez parser. Można w nich zapisywać notatki lub tymczasowo deaktywować wybrane wpisy.

Komentarz liniowy

Znakiem początkowym komentarza liniowego są dwa ukośniki, a jego końcem jest znak nowej linii:

// ta treść jest zakomentowana
ale ta już nie

Komentarz blokowy

Komentarzem blokowym można objąć wiele linii tekstu. Znakiem początkowym jest ukośnik i gwiazdka, a końcowym - gwiazdka i ukośnik.


/* ta treść zajmuje
wiele linii
i jest
zakomentowana */

ale ta już nie jest

Include

Include jest poleceniem które pomaga w modularyzacji plików. Podczas wczytywania pliku gdy parser trafi na polecenie include zawartość dołączonego pliku jest wklejana w miejsce tego polecenia.

include file parameters end
Opis parametrów
Nazwa Znaczenie
file Ścieżka do pliku, którego zawartość ma być podstawiona w miejsce wpisu.
parameters Wartości, które zostaną podstawione w miejsce parametrów zdefiniowanych w pliku.


Parametry

Polecenie include może przyjmować wartości, które zostaną podstawione w miejsce ciągów parametrycznych w dołączanym pliku.

Definicja parametru

Parametr definiuje się za pomocą ciągu parametrycznego:

(pX)

gdzie X jest kolejnym indeksem parametru (zaczynając od 1).

Przykład działania

Przykładowa zawartość parametryzowanego pliku (nazwijmy go example.txt) może wyglądać tak:

Cześć, jestem (p1). Mam (p2) lat.

Dołączenie powyższego pliku za pomocą polecenia include:

include example.txt Jerzy 50 end

Umieszczenie takiego polecenia spowoduje nastepującą interpretację zawartości pliku example.txt:

Cześć, jestem Jerzy. Mam 50 lat.

Zagnieżdżanie parametru

Dopuszczalne jest także zagniezdzanie parametrów. Jesli zdefiniujemy np.

include foo.inc param1_i_(p3) param2 param3 end

to parser przy odczytywaniu takiego include i napotkaniu tokena "wstaw_tutaj_(p1)_oraz_(p2)" wyprodukuje:

wstaw_tutaj_param1_i_param3_oraz_param2