Promotic

LoadFromFile - metoda objektu PmaDataTable

Popis:
Načtení dat pro tento objekt ze souboru typu INI nebo CSV.
Syntaxe:
Boolean LoadFromFile(String sFile, String sParams)
Parametry:
sFile(String) Název souboru s cestou, ze kterého se mají data načíst. Soubor nemusí mít příponu "ini" nebo "csv", typ souboru se určuje podle zadaného parametru filetype.
Pokud není zadána celá cesta, pak se doplní relativně k složce aplikace.
Je doporučeno použít cestu v syntaxi PROMOTIC - viz PROMOTIC cesta k souborům nebo složkám.
sParams(String) Dodatečné parametry definující způsob čtení ze souboru. Údaje jsou zde ve formátu KeyVal, například "filetype:ini;fmt:trans;rowname:boiler;".
"filetype:xxx;" (povinné) - Určuje typ souboru definovaný v parametru sFile
ini - typ je INI soubor.
csv - typ je CSV soubor. Je to víceřádkový soubor textových hodnot například oddělené středníkem. Je běžně využívaný například v programu MsExcel.
"fmt:xxx;" (nepovinné) - Určuje formát uložených dat v souboru.
Výchozí hodnota je "fmt:standard;".
Jsou možné tyto formáty:
standard - Význam závisí na typu souboru:
csv - Hodnoty v řádcích CSV souboru jsou uloženy na odpovídající řádky v tabulce
ini - Sekce souboru INI jsou názvy řádků a klíče souboru INI jsou názvy sloupců tabulky. Příklad:
[r0]
colname1=boiler1
colname2=boiler2
[r1]
colname1=12
colname2=15
trans - Sekce souboru INI jsou názvy sloupců tabulky a klíče souboru INI jsou názvy řádků. Příklad:
[colname1]
r0=boiler1
r1=12
[colname2]
r0=boiler2
r1=15
"rowname:xxx;" (nepovinné) - (pouze pro INI) Určuje název řádku.
Pokud není nastaveno, pak se předpokládá hodnota "rowname:r;". Název řádku se vytvoří tímto textem doplněným o index řádku, například pokud "rowname:rrr;", pak názvy řádků budou "rrr0", "rrr1", atd.
"colnameheader:xxx;" (nepovinné) - (pouze pro CSV)
no (přednastaveno) - už v prvním řádku souboru jsou uložena data.
yes - v prvním řádku souboru nejsou data ale názvy jednotlivých sloupců.
"delimiter:xxx;" (nepovinné) - (pouze pro CSV) Oddělovač hodnot v souboru CSV. Povolené hodnoty jsou:
semicolon (přednastaveno) - oddělovač je středník.
comma - oddělovač je čárka.
space - oddělovač je mezera.
tab - oddělovač je tabulátor.
number - tzn. oddělovač je zadán číslem ASCII znaku (decimálně), například "delimiter:124;" znamená oddělovač "|" (vertikální čára).
"date.fmt:xxx;" (nepovinné) - Formát datumu a času. Povolené hodnoty jsou:
system (přednastaveno) - formát datumu a času je určen nastavením v OS Windows (např. 22.11.2010 16:30:15).
pm - PROMOTIC formát datumu a času na celé sekundy (např. 2010.11.22 16:30:15).
pmmili - PROMOTIC formát datumu a času - přesnost 10 ms (např. 2010.11.22 16:30:15.250).
real - formát datumu a času datového typu Date typu reálné číslo (např. 41392.123456789).
"real.dsep:xxx;" (nepovinné) - (pouze pro CSV) Formát desetinného oddělovače u reálných čísel. Povolené hodnoty jsou:
system (přednastaveno) - desetinný oddělovač je určen nastavením v OS Windows (např. 3,14).
dot - desetinný oddělovač je tečka (nezávisle na nastavení OS Windows) (např. 3.14).
comma - desetinný oddělovač je čárka (nezávisle na nastavení OS Windows) (např. 3,14).
"lastcolsep:xxx;" (nepovinné)
yes - Při zápisu se přidá oddělovač za poslední hodnotou na řádku, při načtení se prázdná hodnota na konci každého řádku ignoruje. Z hlediska CSV souboru to není správně.
no (přednastaveno) - Oddělovače jsou jenom mezi hodnotami na řádku a nikoliv na konci řádku. Z hlediska CSV souboru je toto správně.
Vrácená hodnota:
true - Načtení proběhlo v pořádku (do tabulky byla načtena alespoň jedna hodnota)
false - V jiném případě
Poznámka:
Tato metoda nemění počet a názvy sloupců a je tedy důležité při volání této metody mít sloupce nastaveny (např. v kartě "Sloupce" nebo metodou InsertCol).
Metoda načítá ze souboru data a ukládá je na existující řádky v tabulce (od začátku tabulky). Pokud v souboru je více řádků než v tabulce, pak počet řádků v tabulce se zvětší na příslušný počet. Načítat data lze tedy například i do tabulky, která nemá žádný řádek. Při načítání se však nesmí přesáhnout maximální počet řádků, který je zadaný v kartě "DataTable".
Načítání ze souboru se provádí po řádcích nebo po sloupcích (podle parametru fmt). Pokud se narazí na konec řádku/sloupce, pak se přechází na následující. V souboru tedy nemusí být uloženy všechny hodnoty řádku/sloupce.

Sloupce "Jen pro čtení" (ReadOnly):
Každá buňka je na začátku prázdná. Za prázdnou se považuje i buňka obsahující číselnou hodnotu 0 nebo prázdný řetězec "". Do takové buňky lze zapsat novou hodnotu. Po zápisu neprázdné nenulové hodnoty ve sloupci "Jen pro čtení" dochází k "zamčení buňky". "Zamčená buňka" se stane konstantou, nelze už do ní psát. Do ostatních "nezamčených" buněk však lze dále psát. U metod, které zapisují do více buněk současně, se zapíše pouze do "nezamčených buněk", obsah "zamčených buněk" zůstane beze změny.
Příklad1:
Nastavení objektu z konfiguračního souboru CfgData.csv uloženého ve složce aplikace. Oddělovač hodnot bude středník, desetinný oddělovač reálných čísel bude tečka a formát datumu bude v PROMOTIC systémovém tvaru.
JavaScriptVBScriptVyber a zkopíruj do schránky

var oDataTable = pMe.Pm("/DataTable");
oDataTable.LoadFromFile("#app:CfgData.csv", "filetype:csv;colnameheader:no;delimiter:semicolon;real.dsep:dot;date.fmt:pm;");
Příklad2:
Nastavení objektu z konfiguračního souboru CfgData.ini ve složce aplikace.
JavaScriptVBScriptVyber a zkopíruj do schránky

var oDataTable = pMe.Pm("/DataTable");
oDataTable.LoadFromFile("#app:CfgData.ini", "filetype:ini;rowname:boiler;");

Historie:
Pm8.03.15: Opravená chyba: Metoda někdy selhala při načítání prázdného CSV souboru.
© MICROSYS, spol. s r.o.