Promotic

FileCsvRead - metoda objektu Pm

Popis:
Parametrizované čtení dat z CSV souboru.
Syntaxe:
Variant FileCsvRead(String sFile, String sFields, String sParams)
Parametry:
sFile(String) Soubor k načtení. Bez ohledu na to, zda tento parametr je nebo není nastaven, lze nastavením parametru fileselect nechat otevřít okno pro výběr souboru.
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.
sFields(String) Určuje, které sloupce ze souboru budou načteny a jaké datové typy budou mít načtená data. Například "filecols:0,1,2,3;datatypes:string,double,string,string;".
filecols - Určuje, které sloupce ze zdrojového CSV souboru budou ve výsledné matici hodnot. Pokud je nastaveno filecols:all; (přednastaveno), pak se uloží všechny sloupce ve stejném pořadí.
Seznam číselných indexů, kdy se postupně pro každý sloupec výsledné matice hodnot uvádí index (pořadí) ve zdrojovém CSV souboru. Každý sloupec výsledné matice může být načten z libovolného sloupce ve zdrojovém CSV souboru. To znamená, že seznam musí mít tolik položek, kolik má sloupců výsledná matice hodnot.
Pokud je nastaveno filecols:all; (přednastaveno), pak se načítají všechny sloupce.
Pokud je nastaveno například filecols:0,1,3,8;, pak se načítají jen ty sloupce ze souboru, které jsou zde uvedeny indexem (indexováno od 0).
datatypes - Seznam datových typů sloupců výsledné matice hodnot. Datový typ sloupce určuje způsob načtení hodnot z příslušného sloupce CSV souboru. Zadané datové typy sloupců a pořadí musí odpovídat výsledné matici hodnot. To znamená, že seznam musí mít tolik položek, kolik má sloupců výsledná matice hodnot. Sloupce ve zdrojovém CSV souboru se mohou odlišovat od výsledné matice hodnot, pokud se použije filtrace sloupců pomocí filecols. Povolené názvy datových typů jsou: string, byte, integer, bool, single, double. Například datatypes:string,integer,bool,single;
Pokud není nastaveno, pak je string.
sParams(String) Určuje způsob načtení dat ze souboru.. Například "fileselect:yes;colnameheader:yes;delimiter:comma;"
"fileselect:xxx;" (nepovinné)
yes - voláním metody je vyvoláno okno pro výběr souboru nezávisle na nastavení parametru sFile.
no (přednastaveno)
"colnameheader:xxx;" (nepovinné)
yes - v prvním řádku souboru nejsou data ale názvy jednotlivých sloupců.
no (přednastaveno) - už v prvním řádku souboru jsou uložena data.
"swap:xxx;" (nepovinné)
yes (přednastaveno) - sloupce ze souboru jsou uloženy jako řádky ve výsledné matici (v buňce data(i,j) je hodnota i-sloupce a j-řádku souboru).
no - řádky ze souboru jsou uloženy jako řádky ve výsledné matici (v buňce data(i,j) je hodnota i-řádku a j-sloupce souboru).
"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).
"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:
- Pokud je čten více než jeden sloupec ze souboru, pak vrací 2-rozměrné pole.
- Pokud je čten jen jeden sloupec ze souboru, pak vrací 1-rozměrné pole.
- Pokud čtení dat skončilo chybou, pak vrací: null pro JavaScript nebo Empty pro VBScript (lze testovat metodou Pm.IsValid).
Poznámka:
Pro vytvoření a zápis dat do CSV souboru slouží metoda FileCsvWrite. Lze použít i metodu FileTextWrite (viz Příklad2 u této metody).

Tato metoda není funkční ve Web obrazech.
Příklad1:
Metoda zobrazuje okno pro výběr souboru (přednastavený soubor je data.csv uložený ve složce aplikace), načítá data vybraného souboru ze všech sloupců. Hodnoty v souboru jsou oddělené středníkem a soubor neobsahuje v prvním řadku názvy sloupců.
JavaScriptVBScriptVyber a zkopíruj do schránky

var vData = Pm.FileCsvRead("#app:data.csv", "filecols:all;", "delimiter:semicolon;colnameheader:no;fileselect:yes;");
if (Pm.IsValid(vData))
{
// ... Pokud byla data v pořádku načtena
}
Příklad2:
Metoda přečte data ze souboru data.csv (název,hodnota,jednotka,poznámka) uloženého ve složce aplikace. Načítá 3 sloupce s prohozeným pořadím (název,poznámka,hodnota, tzn. sloupce 0,3,1) a výsledek uloží do výsledné matice hodnot vData. Hodnoty ve výsledné matici jsou v pořadí datových typů string, string a double. Hodnoty v souboru jsou oddělené středníkem a soubor neobsahuje v prvním řadku názvy sloupců.
JavaScriptVBScriptVyber a zkopíruj do schránky

var sParams = "delimiter:semicolon;colnameheader:no;";
var vData = Pm.FileCsvRead("#app:data.csv", "filecols:0,3,1;datatypes:string,string,double;", sParams);
if (Pm.IsValid(vData))
{
// ... Pokud byla data v pořádku načtena
}

Historie:
Pm8.00.00: Umožňuje zadat jakýkoli typ oddělovače ("delimiter:xxx;").
Navigace:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileCsvRead
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.