Tip pro VBScript: Změna místního a jazykového nastavení

12. listopadu 2014 | Reliance SCADA

Místní a jazykové nastavení je skupina parametrů, které určují jazyk, zemi a další specifické volby (např. abecední řazení, formát čísel, data, času a měny). Některé funkce jazyka VBScript pracují s místním a jazykovým nastavením. Jedná se např. o funkci MonthName, která vrací název požadovaného měsíce v roce. Místní a jazykové nastavení má také vliv na to, jak bude hodnota proměnné převedena na text, tj. např. v jakém formátu bude zobrazena hodnota proměnné typu DateTime (datum a čas).


Výchozí hodnota místního a jazykového nastavení ve skriptech systému Reliance je angličtina – Spojené státy. Proto se hodnota proměnné typu DateTime převedená na text zobrazí takto:


Dim d, dow, wdn
d = Date
dow = WeekDay(d)
wdn = WeekDayName(dow)
MsgBox wdn & ", " & d, vbSystemModal

Výchozí zobrazení času


Pokud toto není vyhovující nebo je potřeba nastavení měnit (např. podle jazyka programu nebo projektu), je možné použít funkci SetLocale, která jako parametr očekává identifikátor místního a jazykového nastavení. Hodnota proměnné typu DateTime převedená na text se pak zobrazí takto:


Dim d, dow, wdn
SetLocale "cs"
d = Date
dow = WeekDay(d)
wdn = WeekDayName(dow)
MsgBox wdn & ", " & d, vbSystemModal

Místní zobrazení času


Pro zjištění aktuálního nastavení slouží funkce GetLocale.


Změna místního a jazykového nastavení pomocí funkce SetLocale bohužel nemá vliv na převedení hodnoty proměnné typu Boolean na text. Výsledek závisí na jazyku Windows. Např. na českém systému Windows se hodnota proměnné typu Boolean převede buď na "Pravda", nebo na "Nepravda". Řešením je zavést funkci, která vždy vrátí "True"; nebo "False".


function BoolToStr(a)
  if a then
    BoolToStr = "True"
  else
    BoolToStr = "False"
  end if
end function

Funkci je pak možné zavolat za účelem převedení hodnoty.


Dim a, b
a = True
b = False
MsgBox BoolToStr(a) & " " & BoolToStr(b)

Pravda, Nepravda


Reliance Earth Icon

Top