Získavanie zoznamov súborov a adresárov z FTP serverov
FTP klient potrebuje zoznam súborov a adresárov aktuálneho adresára na FTP serveri s čo najviac údajmi (dátum, veľkosť, používateľ, skupina, oprávnenia atď.). Zobrazia sa v paneli, kde s nimi pracujete. Zoznam vzniká z obyčajného textového výpisu servera, určeného ľuďom, nie automatickej analýze. Takmer každý server má preto vlastný formát výpisu podľa operačného systému, jazyka atď. a klient musí podporovať mnoho formátov.
Každý formát má definovaný typ servera. Obsahuje podmienku automatického rozpoznania, zoznam dátových stĺpcov (aj ich viditeľnosť v paneli) a parser textového výpisu. Všetky typy sú v Konfigurácia/Servery. Nové pridáte alebo existujúce upravíte v dialógu Úprava typu servera.
Môžete určiť, či sa má typ rozpoznávať automaticky. Ak nie, vyberte používaný typ. Pozrite možnosť Typ servera v dialógu Pokročilé nastavenie.
Získavanie zoznamov s určeným typom servera
Určený typ analyzuje textový výpis. Pri úspechu vznikne zoznam súborov a adresárov. Inak plugin upozorní a zobrazí v paneli len textový výpis, ktorý nemožno použiť na operácie.
Adresár "." sa z výpisu odstráni, ak je prítomný, a ".." tiež, ak ide o výpis koreňa. Adresár ".." je vždy viditeľný, ak je v zozname (atribút skrytý sa ignoruje).
Získavanie zoznamov s automaticky rozpoznaným typom servera
Všetky typy serverov sa skúšajú postupne. Vyhodnotí sa podmienka rozpoznania každého typu. Pri false sa preskočí a skúsi ďalší; pri true analyzuje výpis. Ak uspeje, výsledkom je zoznam súborov a adresárov, inak sa skúsi ďalší typ.
Ak žiadny typ pri analýze neuspeje, postupne sa skúšajú všetky typy preskočené pre podmienku rozpoznania. Každý analyzuje textový výpis; pri úspechu vznikne zoznam súborov a adresárov, pri neúspechu sa skúsi ďalší.
Ak zlyhajú všetky typy, plugin upozorní a zobrazí v paneli len textový výpis, nepoužiteľný na operácie.
Typ servera sa rozpoznáva len pri prvom výpise. Pre ďalšie sa použije rovnaký typ, aby sa napríklad aj pri prázdnom výpise zobrazovali rovnaké stĺpce. Ak týmto typom nemožno výpis analyzovať, plugin skúsi rozpoznať iný.
Adresár "." sa z výpisu odstráni, ak je prítomný, a ".." tiež, ak ide o výpis koreňa. Adresár ".." je vždy viditeľný, ak je v zozname (atribút skrytý sa ignoruje).
Syntax parsera
Riadkový komentár začína znakom '#' a končí koncom riadka.
Pravidlo začína '*' a končí ';'. Počet pravidiel nie je obmedzený. Pravidlo tvoria funkcie oddelené znakom ','.
Funkcia pozostáva z názvu, znaku '(', zoznamu parametrov a znaku ')'. Úplný zoznam funkcií je ďalej na stránke.
Parametre sú oddelené znakom ',' a sú to výrazy.
Výraz je identifikátor stĺpca, stavová premenná, konštanta alebo jedna binárna operácia. Tá má bežný tvar (first_operand operation_symbol second_operand). Operandom môže byť identifikátor stĺpca, stavová premenná alebo konštanta.
Identifikátor stĺpca tvorí znak '<', názov identifikátora a znak '>'.
Úplné zoznamy stavových premenných a symbolov operácií sú ďalej na stránke.
Konštanta je reťazec, číslo alebo logická hodnota.
Reťazec je v dvojitých úvodzovkách ('"') a musí byť na jednom riadku. Únikové sekvencie začínajú znakom '\'. Podporované sú: "\\" pre znak '\', "\"" pre znak '"', "\t" pre tabulátor, "\r" a "\n" pre konce riadkov (CR a LF). Iné sekvencie sú syntaktickou chybou.
Číslo tvoria desiatkové číslice. Záporné číslo začína '-', kladné '+' (možno vynechať).
Logická hodnota je "true" alebo "false" (bez dvojitých úvodzoviek).
Stĺpce
Každý stĺpec má názov identifikátora, typ hodnôt, prázdnu hodnotu, názov a opis pre panel a zarovnanie. Názov identifikátora sa používa na priraďovanie hodnôt stĺpcu. Pre každú položku (súbor alebo adresár) môže stĺpec obsahovať len jednu hodnotu. Ak nebola priradená, použije sa definovaná prázdna hodnota. Stĺpec môže byť v paneli viditeľný alebo skrytý; len typy Názov a Prípona sú vždy viditeľné. Stĺpce sa definujú v dialógu Úprava stĺpca.
K dispozícii sú tieto typy stĺpcov:
| Typ | Opis |
|---|---|
| Názov | reťazec; názov súboru alebo adresára; nutný je presne jeden takýto stĺpec; nemožno ho skryť; definovanie prázdnej hodnoty nemá význam; parser musí každej položke priradiť hodnotu; inak aktuálne pravidlo nepridá súbor ani adresár (na preskočenie prázdnych riadkov a nepodstatných častí výpisu); priradenie prázdneho reťazca ("") je chybou analýzy |
| Prípona | reťazec; prípona súboru; hodnoty vznikajú automaticky zo stĺpca typu Názov; nemožno ho skryť; definovanie prázdnej hodnoty nemá význam |
| Veľkosť súboru v bajtoch | 64-bitové celé číslo bez znamienka; veľkosť súboru v bajtoch; pre adresáre je hodnota nula a panel zobrazuje "DIR"; predvolená prázdna hodnota je nula |
| Dátum posledného zápisu | dátum; posledný zápis (zmena); dátum musí byť platný, inak sa nahradí 1. januárom 1602; predvolená prázdna hodnota je 1. január 1602 |
| Čas posledného zápisu | čas; posledný zápis (zmena); predvolená prázdna hodnota je 0:00:00 |
| Typ súboru | reťazec; opis typu súboru určený Windows pre príponu; hodnoty vznikajú automaticky zo stĺpca Názov; definovanie prázdnej hodnoty nemá význam |
| Každý text | reťazec; všeobecné použitie; predvolená prázdna hodnota je prázdny reťazec ("") |
| Každý dátum | dátum; všeobecné použitie; musí byť platný, inak sa nahradí 1. januárom 1602; predvolená prázdna hodnota je prázdny reťazec (""), takže pri nepriradení panel nezobrazí nič |
| Každý čas | čas; všeobecné použitie; predvolená prázdna hodnota je prázdny reťazec (""), takže pri nepriradení panel nezobrazí nič |
| Každé číslo | 64-bitové celé číslo so znamienkom; všeobecné použitie; predvolená prázdna hodnota je prázdny reťazec (""), takže pri nepriradení panel nezobrazí nič |
Navyše existujú tri virtuálne stĺpce s identifikátormi <is_dir>, <is_hidden> a <is_link>. Priraďujú sa im logické hodnoty s významom „je položka adresár?“ (false znamená súbor), „je skrytá?“ (false znamená bez atribútu skrytý) a „je odkaz?“ (false znamená, že nie je odkaz). Hodnoty netreba priraďovať; prázdne hodnoty sú „je súbor“, „nie je skrytý“ a „nie je odkaz“.
Syntax podmienky automatického rozpoznania
Podmienka rozpoznania je logický výraz s operátormi podľa klesajúcej priority: NOT, AND a OR. NOT (negácia) je unárny; AND (konjunkcia) a OR (disjunkcia) sú binárne. Výraz môže mať podvýrazy v zátvorkách. Operandy tvoria tieto funkcie:
| Funkcia | Opis |
|---|---|
| syst_contains(string) | vráti true, len ak odpoveď na FTP príkaz SYST (typ operačného systému servera) obsahuje zadaný reťazec; hľadanie nerozlišuje veľkosť písmen |
| welcome_contains(string) | vráti true, len ak prvá správa servera obsahuje zadaný reťazec; hľadanie nerozlišuje veľkosť písmen |
| reg_exp_in_syst(regular_expression_string) | vráti true, len ak odpoveď na FTP príkaz SYST (typ operačného systému servera) obsahuje reťazec zodpovedajúci regulárnemu výrazu; hľadanie nerozlišuje veľkosť písmen |
| reg_exp_in_welcome(regular_expression_string) | vráti true, len ak prvá správa servera obsahuje reťazec zodpovedajúci regulárnemu výrazu; hľadanie nerozlišuje veľkosť písmen |
Syntaktická analýza
Analýza je úspešná, ak sa definovanými pravidlami prejde celý textový výpis.
Aktuálna pozícia vo výpise sa nazýva ukazovateľ. Počas analýzy sa pohybuje od začiatku ku koncu.
Pravidlo možno použiť len pri úspešnom vyhodnotení všetkých funkcií, nepriradení prázdneho reťazca do stĺpca Názov (možno priradiť neprázdny reťazec alebo nič) a presune ukazovateľa na koniec niektorého riadka. Po použití pravidla sa ukazovateľ vždy presunie na začiatok ďalšieho riadka.
Pri vyhodnocovaní môže funkcia presunúť ukazovateľ a priradiť či zmeniť hodnoty stĺpcov.
Parser môže mať ľubovoľný počet pravidiel. Skúšajú sa v poradí definície, takže sa použije vždy prvé použiteľné.
Výpis môže byť neúplný pri zrušení prenosu používateľom alebo sieťovej chybe. Neúplný výpis sa skráti len na úplné riadky textu.
Analýza neúplného výpisu sa rieši na úrovni pravidiel. Jednoducho sa ukazovateľ pravidlami presunie na koniec neúplného výpisu a analýza úspešne skončí. Inak by sa pri vyhodnocovaní funkcie aktuálneho pravidla mal presunúť na ďalší riadok, no pre neúplnosť to nie je možné. Analýza preto úspešne skončí, akoby riadok či riadky prechádzané aktuálnym pravidlom vo výpise neboli.
Podporované veľkosti súborov
Plugin podporuje veľkosti v bajtoch aj blokoch. Veľkosť priraďte stĺpcu typu Veľkosť súboru v bajtoch alebo typu Každé číslo so štandardným názvom "Blocks" či "BlkSize". Pri výbere skupiny súborov sa potom celková veľkosť v bajtoch alebo blokoch zobrazí v informačnom riadku.
Funkcie syntaktickej analýzy
Ak nie je uvedené inak, funkcia vždy uspeje, nepohne ukazovateľom a nepriradí hodnotu žiadnemu stĺpcu. Ak ho presúva a nie je uvedené inak, predpokladá sa, že neprekročí koniec riadka na ďalší.
Pred použitím identifikátora stĺpca vo výraze treba stĺpcu priradiť hodnotu. Inak výraz nemá význam a možno ho nahradiť logickou konštantou vypočítanou z predvolenej prázdnej hodnoty stĺpca.
Poznámka: v nasledujúcej tabuľke biele miesto znamená medzeru alebo tabulátor.
K dispozícii sú tieto funkcie analýzy:
| Funkcia | Opis |
|---|---|
| if(expression) | výsledok výrazu (parameter expression) musí byť logická hodnota; funkcia uspeje, ak je true |
| assign(<column>, expression) | typ výsledku výrazu (parameter expression) musí zodpovedať typu hodnôt stĺpca (parameter <column>); priradí výsledok výrazu stĺpcu |
| skip_white_spaces() | preskočí všetky biele miesta pri ukazovateli a presunie ho za ne, ak existujú |
| skip_to_number() | presunie ukazovateľ na najbližšiu desiatkovú číslicu |
| white_spaces() | preskočí všetky biele miesta pri ukazovateli; uspeje len pri jeho posune |
| white_spaces(number) | preskočí reťazec so zadaným počtom bielych miest (parameter number) pri ukazovateli a presunie ho za reťazec; uspeje len pri existencii takého reťazca |
| white_spaces_and_line_ends() | preskočí všetky biele miesta a konce riadkov pri ukazovateli; uspeje len pri jeho posune, ak zároveň nie je na konci výpisu (za bielymi miestami a koncami riadkov sa našiel znak) |
| rest_of_line() | presunie ukazovateľ na koniec riadka; uspeje len pri jeho posune |
| rest_of_line(<column>) | stĺpec (parameter <column>) musí obsahovať reťazce; priradí mu reťazec od ukazovateľa po miesto pred koncom riadka; ukazovateľ presunie na koniec riadka; uspeje len pri jeho posune |
| word() | preskočí všetky znaky okrem bielych miest a koncov riadkov; uspeje len pri posune ukazovateľa |
| word(<column>) | stĺpec (parameter <column>) musí obsahovať reťazce; priradí mu reťazec od ukazovateľa pred prvé biele miesto alebo koniec riadka; ukazovateľ presunie za reťazec; uspeje len pri jeho posune |
| number(<column>) | stĺpec (parameter <column>) musí obsahovať celé čísla; priradí mu desiatkové číslo od ukazovateľa; za číslom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za číslo; uspeje len pri existencii a správnom ukončení čísla, ktoré pri type Veľkosť súboru v bajtoch nesmie byť záporné |
| positive_number(<column>) | stĺpec (parameter <column>) musí obsahovať celé čísla; priradí kladné desiatkové číslo od ukazovateľa; pri zápornom priradí predvolenú prázdnu hodnotu (nulu pre Veľkosť súboru v bajtoch, prázdny reťazec pre Každé číslo); za číslom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za číslo; uspeje len pri existencii a správnom ukončení čísla |
| number_with_separators(<column>, string) | stĺpec (parameter <column>) musí obsahovať celé čísla; priradí desiatkové číslo so znakmi zoskupenia číslic pre ľahšie čítanie veľkých čísel, začínajúce pri ukazovateli; povolené oddeľovače určuje parameter string a môžu to byť všetky znaky okrem číslic, '+' a '-'; za číslom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za číslo; uspeje len pri existencii a správnom ukončení čísla, ktoré pri type Veľkosť súboru v bajtoch nesmie byť záporné |
| month_3(<column>) | stĺpec (parameter <column>) musí obsahovať dátum; priradí mesiac vyjadrený tromi písmenami pri ukazovateli; podporuje názvy vo viacerých jazykoch (aktuálne angličtina, nemčina, nórčina a švédčina); za názvom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za názov; uspeje len pri známom mesiaci a rovnakom jazyku všetkých názvov mesiacov výpisu |
| month_3(<column>, string) | stĺpec (parameter <column>) musí obsahovať dátum; priradí mesiac vyjadrený tromi písmenami pri ukazovateli; názvy určuje parameter string ako dvanásť trojpísmenových názvov oddelených medzerami (napríklad "jan feb mar apr may jun jul aug sep oct nov dec" pre angličtinu); za názvom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za názov; uspeje len pri názve obsiahnutom v reťazci |
| month_txt(<column>) | stĺpec (parameter <column>) musí obsahovať dátum; priradí mesiac vyjadrený názvom pri ukazovateli; podporuje viaceré jazyky (aktuálne nemčina); za názvom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za názov; uspeje len pri známom mesiaci a rovnakom jazyku všetkých názvov mesiacov výpisu |
| month_txt(<column>, string) | stĺpec (parameter <column>) musí obsahovať dátum; priradí mesiac vyjadrený názvom pri ukazovateli; názvy určuje parameter string ako dvanásť názvov oddelených medzerami (napríklad "Jan. Feb. März Apr. Mai Juni Juli Aug. Sept. Okt. Nov. Dez." pre nemčinu); za názvom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za názov; uspeje len pri názve obsiahnutom v reťazci |
| month(<column>) | stĺpec (parameter <column>) musí obsahovať dátum; priradí mesiac vyjadrený desiatkovým číslom pri ukazovateli; za číslom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za číslo; uspeje len v rozsahu 1 až 12 |
| day(<column>) | stĺpec (parameter <column>) musí obsahovať dátum; priradí deň vyjadrený desiatkovým číslom pri ukazovateli; za číslom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za číslo; uspeje len v rozsahu 1 až 31 |
| year(<column>) | stĺpec (parameter <column>) musí obsahovať dátum; priradí rok vyjadrený desiatkovým číslom pri ukazovateli; za číslom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za číslo; uspeje len v rozsahu 0 až 999 (k 0 až 79 pridá 2000, k 80 až 999 pridá 1900; napríklad rok 107 znamená 2007) alebo 1602 až 9999 |
| time(<column>) | stĺpec (parameter <column>) musí obsahovať čas; priradí hodiny, minúty a voliteľne sekundy a milisekundy ako desiatkové čísla pri ukazovateli; podporuje 00:00, 00:00:00 a 00:00:00.000; prípony "a", "am", "p" či "pm" označujú dopoludnie alebo popoludnie a čas sa upraví; za časom musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno či číslica; presunie ukazovateľ za čas; uspeje len pri platných hodnotách v rozsahoch 0-23, 0-59, 0-59 a 0-999 |
| year_or_time(<column_date>, <column_time>) | stĺpce (parametre <column_date> a <column_time>) musia obsahovať dátum a čas; priradí rok a voliteľne čas (len hodiny a minúty), vyjadrený desiatkovým číslom pre rok alebo dvoma číslami oddelenými ':' pre čas pri ukazovateli; podporuje štandardný unixový formát: pri roku je čas neznámy, pri čase sa rok odvodí z aktuálneho dátumu tak, aby celý dátum nebol starší ako šesť mesiacov; za číslami musí byť bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za rok alebo čas; uspeje len pri platnej hodnote v rozsahoch 1602-9999 a 0-23:0-59 |
| all(number) | preskočí zadaný počet znakov (parameter number) a presunie ukazovateľ za ne; uspeje len pri preskočení celého počtu |
| all(<column>, number) | stĺpec (parameter <column>) musí obsahovať reťazce; priradí reťazec so zadaným počtom znakov (parameter number) od ukazovateľa; presunie ho za reťazec; uspeje len pri existencii takého reťazca |
| all_to(string) | nájde prvý výskyt zadaného reťazca (parameter string) bez rozlíšenia veľkosti písmen a presunie ukazovateľ zaň; uspeje len pri nájdení |
| all_to(<column>, string) | stĺpec (parameter <column>) musí obsahovať reťazce; priradí reťazec od ukazovateľa až za prvý výskyt zadaného reťazca (parameter string), bez rozlíšenia veľkosti písmen; presunie ukazovateľ za nájdený reťazec; uspeje len pri jeho nájdení |
| all_up_to(<column>, string) | stĺpec (parameter <column>) musí obsahovať reťazce; priradí reťazec od ukazovateľa pred prvý výskyt zadaného reťazca (parameter string), bez rozlíšenia veľkosti písmen; presunie ukazovateľ za nájdený reťazec; uspeje len pri jeho nájdení |
| unix_link(<is_dir>, <column_name>, <column_link>) | stĺpce <column_name> a <column_link> musia byť typu Názov a Každý text; pracuje s reťazcom od ukazovateľa pred koniec riadka a presunie ho zaň; očakáva unixový odkaz "link_name -> target_name" alebo "link_name", ak cieľ nie je dostupný; získa názov a voliteľne cieľ a odhadne odkaz na súbor či adresár: prípona v názve alebo cieli znamená pravdepodobne súbor, inak adresár; ak odhad nesedí, za unix_link môžete pridať napríklad "assign(<is_dir>,false)"; názov priradí do <column_name>, známy cieľ do <column_link> a pri odkaze na adresár priradí true virtuálnemu <is_dir>; uspeje len pri očakávanom formáte bez bieleho miesta na začiatku |
| unix_device(<column>) | stĺpec (parameter <column>) musí obsahovať reťazce; priradí reťazec od ukazovateľa s dvoma desiatkovými číslami oddelenými ',' a niekoľkými medzerami (napríklad "27, 26"); nasleduje bežný oddeľovač (',', '.', ';', ':' atď.), biele miesto alebo koniec riadka, nie písmeno; presunie ukazovateľ za reťazec; uspeje len pri jeho nájdení |
| add_string_to_column(<column>, expression) | stĺpec (parameter <column>) aj výsledok výrazu (parameter expression) musia byť reťazce; pridá výsledok výrazu k stĺpcu |
| cut_white_spaces_end(<column>) | stĺpec (parameter <column>) musí obsahovať reťazce; odstrihne koncové biele miesta a nový reťazec priradí stĺpcu |
| cut_white_spaces_start(<column>) | stĺpec (parameter <column>) musí obsahovať reťazce; odstrihne úvodné biele miesta a nový reťazec priradí stĺpcu |
| cut_white_spaces(<column>) | stĺpec (parameter <column>) musí obsahovať reťazce; odstrihne úvodné aj koncové biele miesta a nový reťazec priradí stĺpcu |
| back(number) | presunie ukazovateľ o zadaný počet znakov (parameter number) späť; uspeje len pri možnom presune (nemožno prejsť na predchádzajúci riadok) |
| cut_end_of_string(<column>, number) | stĺpec (parameter <column>) musí obsahovať reťazce; odstrihne zadaný počet znakov (parameter number) od konca a nový reťazec priradí stĺpcu; uspeje len pri pôvodnej dĺžke aspoň number |
Stavové premenné syntaktickej analýzy
K dispozícii sú tieto stavové premenné:
| Premenná | Opis |
|---|---|
| first_nonempty_line | logická hodnota; true, len ak je ukazovateľ na prvom neprázdnom riadku (neobsahuje len biele miesta) |
| last_nonempty_line | logická hodnota; true, len ak je ukazovateľ na poslednom neprázdnom riadku; ignoruje úplnosť výpisu |
| next_char | reťazec s jedným znakom pri ukazovateli; na konci výpisu je prázdny |
| next_word | reťazec od ukazovateľa pred prvé biele miesto alebo koniec riadka |
| rest_of_line | reťazec od ukazovateľa pred koniec riadka |
Operátory syntaktickej analýzy
Pred použitím identifikátora stĺpca vo výraze treba stĺpcu priradiť hodnotu. Inak výraz nemá význam a možno ho nahradiť logickou konštantou vypočítanou z predvolenej prázdnej hodnoty stĺpca.
K dispozícii sú tieto operátory:
| Operátor | Opis |
|---|---|
| == | rovnosť; porovnanie reťazcov rozlišuje veľkosť písmen |
| != | nerovnosť; porovnanie reťazcov rozlišuje veľkosť písmen |
| eq | rovnosť reťazcov; len pre reťazce; bez rozlíšenia veľkosti písmen |
| not_eq | nerovnosť reťazcov; len pre reťazce; bez rozlíšenia veľkosti písmen |
| in | hľadanie podreťazca; true, len ak je podreťazec (ľavý operand) v reťazci (pravý operand); bez rozlíšenia veľkosti písmen |
| not_in | true, len ak podreťazec (ľavý operand) nie je v reťazci (pravý operand); bez rozlíšenia veľkosti písmen |
| end_with | true, len ak reťazec (ľavý operand) končí podreťazcom (pravý operand); bez rozlíšenia veľkosti písmen |
| not_end_with | true, len ak reťazec (ľavý operand) nekončí podreťazcom (pravý operand); bez rozlíšenia veľkosti písmen |
Pozrite tiež
Konfigurácia/Servery
Dialóg Úprava typu servera
Dialóg Úprava stĺpca
Dialóg Test syntaktickej analýzy
From the Sally manual (GPL-2.0-or-later), © 1997-2023 Open Salamander Authors; © 2025-2026 Elias Bachaalany. Source: manual source (zip) · original page in the Sally repository