- Ostatní
Změna kódování úlohy (Kamen-Latin2,...)
PC FAND podporuje kód Kamenických nebo Latin 2. Z toho je odvozena i podpora národního prostředí (češtiny) v aplikacích. V současnosti se provádějí především převody z Kamenických do Latin 2. Proto uvádíme příklady pro tuto variantu. Obrácený převod z Latin 2 do Kamenických by se provedl analogicky.
Překódování úlohy je pouze technická záležitost. PC FAND překódování podporuje.
Fáze překódování úlohy:
Nastavení nové abecedy ve FANDu | Spustíme program FANDINST, z hlavního menu zvolíme Abeceda a vybereme požadované kódování. Tímto nastavením se změní kódování všech textů FANDu = hlášky, nápověda. Toto nastavení nemá žádný vliv na změnu kódování úlohy. |
Překódování úlohy | Jedná se o překódování textů úlohy a nápovědy úlohy. Provádí se podobně jako překódování datových souborů. Úloha musí být otevřená. |
Překódování datových souborů | Převádějí se jen ty soubory, které obsahují položky typu A a T, a navíc jen tehdy, pokud tyto položky obsahují data s diakritikou. |
Konkrétní postupy, příklady, poznámky :
(Platí pro verze FANDu 3.0 a vyšší.)
- Na pořadí provedení jednotlivých fází nezáleží.
- Překódování datového souboru
Jednotlivý datový soubor se překóduje trojnásobným použitím příkazu COPYFILE. Příklad procedury.P prekod_data begin { 1. prevod datovy soubor na textovy } copyfile(datSoubor,'pomKAM.txt'/VAR); { 2. prekodovani textoveho souboru } copyfile('pomKAM.txt','pomLAT.txt', mode='KL'); { 3. navrat z textoveho formatu do datoveho } copyfile('pomLAT.txt'/VAR,datSoubor); end;
- Popis jednotlivých variant použití příkazu COPYFILE je v dokumentaci nebo nápovědě. FAND nepodporuje převod datového formátu, proto ten převod do textu. POZOR na 2. krok, překódování text. souboru nesmí být "inplace".
- Proceduru "prekod_data" např. vložíme do otevřené úlohy a postupně ji spustíme pro jednotlivé datové soubory úlohy (které obsahují nějaké údaje s diakritikou).
- Pokud je převedený soubor indexový (.X) a v klíčích jsou použity údaje s diakritikou, je nutno po překodování provést obnovu indexů. Nejjednodušší je prostě zrušit soubory .X00.
- Nápověda úlohy (soubor.HLP) je v podstatě jen jedním z datových souborů úlohy. Proto k jejímu převodu použijeme postup z procedury "prekoduj".
- K překódování vlastní úlohy (soubory RDB a TTT) využijeme faktu, že úloha je jen speciálním případem datového souboru, viz. např. nápověda FANDu, heslo "projektový soubor". Takže k překódování úlohy (nebo úloh) si založíme pomocnou úlohu, ve které si (otevřenou) úlohu k převodu nadeklarujeme jako soubor typu .RDB.
- Základem převodu je opět postup procedury "prekod_data" - Od verze FANDu 3.2 se v údaji "StText" ukládá přeložený tvar kapitoly typu F (resp. D). Obsah tohoto údaje je překódováním znehodnocen. Aby překlad úlohy po jejím překódování proběhl korektně, musí se tedy údaj "StText" vynulovat. Z podobných důvodů se nastaví údaj "Overit" na hodnotu TRUE. - Příklad překódování úlohy
P uloha.RDB P prekod_ulohy var i : real; begin forall i in uloha do begin uloha[i].StText:=''; uloha[i].Overit:=TRUE; end; copyfile(uloha,'pomKAM.txt'/VAR); copyfile('pomKAM.txt','pomLAT.txt', mode='KL'); copyfile('pomLAT.txt'/VAR,uloha); end;
- Varianta procedury prekod_data
Pro překodování souboru lze napsat obecnou proceduru s parametrem typu FILE.P obecna ( catalog : FILE ) begin copyfile(catalog,'pomKAM.txt'/VAR); copyfile('pomKAM.txt','pomLAT.txt', mode='KL'); copyfile('pomLAT.txt'/VAR,catalog); end; P go_obecna begin proc(prekod,(@datSoubor1)); proc(prekod,(@datSoubor2)); ... end;
- Při překódován souboru s datumovými údaji ve formátu '...YY' (rok na 2 místa) - to jest třeba standardní formát typu D - pozor na převod datumu z datového formátu do textového a zpět. Viz. problém roku 2000, FANDINST - konstanty - parametr " Posun implicitního století".
Pokud máme v souborech datumy z různých století (běžně např. data narození)použijeme raději (alespoň pro převod) plný tvar masky datumu 'DD.MM.YYYY'
- Příklad - úloha s uvedenými procedurami - je zde ke ztažení.