Promotic
WikipediaLinkedInYoutubeTwitterFacebook

LoadFromFile - metoda objektu PmDataTable

Popis:
Načtení dat pro tento objekt ze souboru typu INI nebo CSV.
Syntaxe:
LoadFromFile(sFile As String, sParams As String) As Boolean
Volání:
b = oDataTable.LoadFromFile(sFile, sParams)
Parametry:
sFile(String) Cesta k 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, doplní se relativně vzhledem k souborové složce aplikace. Je doporučeno použít cestu v syntaxi PROMOTIC - viz PROMOTIC cesta k souborům nebo složkám.

sParams(String) Textový seznam parametrů definující způsob čtení ze souboru. Údaje s přiřazenou hodnotou jsou zde odděleny středníkem, například "filetype:ini;fmt:trans;rowname:boiler;".
"filetype:xxx;" (povinné) - Určuje typ souboru definovaný parametrem sFile
ini - typ je INI soubor.
csv - typ je CSV soubor. Je to víceřádkový soubor textových hodnot oddělených například 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 daném souboru. Pokud není uveden, předpokládá se hodnota "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 INI souboru jsou názvy řádků a klíče INI souboru jsou názvy sloupců tabulky. Příklad:
[r0]
colname1=boiler1
colname2=boiler2
[r1]
colname1=12
colname2=15
trans - Sekce INI souboru jsou názvy sloupců tabulky a klíče INI souboru jsou názvy řádků. Příklad:
[colname1]
r0=boiler1
r1=12
[colname2]
r0=boiler2
r1=15
"rowname:xxx;" (nepovinné) - (jen pro INI) Určuje název řádku. Pokud není uveden, předpokládá se hodnota "rowname:r;". Název řádku se vytvoří tímto textem doplněným o index řádku, například když "rowname:rrr;", pak názvy řádků budou "rrr0", "rrr1", atd.
"colnameheader:xxx;" (nepovinné) - (jen pro CSV)
no (přednastaveno) - už v prvním řádku souboru jsou uložena data.
yes - v prvním řádku v souboru nejsou data ale názvy jednotlivých sloupců.
"delimiter:xxx;" (nepovinné) - (jen pro CSV) Oddělovač hodnot v CSV souboru. Povolené hodnoty jsou:
semicolon (přednastaveno) - odddělovač je středník.
comma - odddělovač je čárka.
space - odddělovač je mezera.
tab - odddělovač je tabelátor.
number - tj. oddělovač je zadán dekadickým číslem ASCII znaku, například "delimiter:124;" znamená oddělovač "|" (vertikální čára).
"date.fmt:xxx;" (nepovinné) - Formát času a datumu. Povolené hodnoty jsou:
system (přednastaveno) - formát času a data je určen nastavením OS Windows (např. 22.11.2010 16:30:15).
pm - PROMOTIC formát času a data na celé sekundy (např. 2010.11.22 16:30:15).
pmmili - PROMOTIC formát času a data na milisekundy (např. 2010.11.22 16:30:15.250).
real - formát času a datumu datového typu Date v podobě reálného čísla (např. 41392.123456789).
"real.dsep:xxx;" (nepovinné) - (jen 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 OS Windows (např. 3,14).
dot - desetinný oddělovač je (bez ohledu na nastavení OS Windows) tečka (např. 3.14).
comma - desetinný oddělovač je (bez ohledu na nastavení OS Windows) čárka (např. 3,14).
"lastcolsep:xxx;" (nepovinné)
yes - Při zápisu se přidá separátor 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) - Separátory 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 opačné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 záložce 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 je v souboru více řádků než v tabulce, pak se počet řádku v tabulce 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 konfigurační záložce DataTable.

Načítání ze souboru se provádí po řádcích nebo po sloupcích (dle parametru "fmt"). Pokud se narazí na konec řádku/sloupce, přechází se 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 s číselnou hodnotou 0, prázdným řetězcem "". 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, 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 CSV 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.
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 INI souboru CfgData.ini uloženého ve složce aplikace.
oDataTable.LoadFromFile "#app:CfgData.ini", "filetype:ini;rowname:boiler;"
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice