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) 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ě 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) Dodatečné parametry definující způsob čtení ze souboru. Údaje jsou zde ve formátu PmNamedValues, 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 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 daném souboru. Pokud není nastaveno, pak se předpokládá 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í 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é) - (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 - tzn. 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 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 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, 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 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