Promotic

FileCsvWrite - metoda objektu Pm

Popis:
Parametrizovaný zápis dat do souboru CSV.
Syntaxe:
Boolean FileCsvWrite(String sFile, String sFields, String sParams, Array aValues)
Parametry:
sFile(String) Soubor k uložení. 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, jak budou uloženy sloupce ze zdrojové matice hodnot ve výsledném CSV souboru. Například "filecols:0,1,2,3;appnames:název,hodnota,jednotka,poznámka;".
filecols - Určuje, jak budou uloženy sloupce ze zdrojové matice hodnot ve výsledném CSV souboru. Pokud je zadáno 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 zdrojové matice uvádí index (pořadí) ve výsledném CSV souboru. Každý sloupec zdrojové matice může být zapsán do libovolného sloupce ve výsledném CSV souboru nebo úplně vynechán (hodnota indexu -1). To znamená, že seznam musí mít tolik položek, kolik má sloupců zdrojová matice hodnot. Počet sloupců ve výsledném CSV souboru je dán hodnotou maximálního indexu (+1) v seznamu. Při mapování pořadí sloupců ze zdrojové matice do výsledného CSV souboru mohou vznikat prázdné sloupce.
Například filecols:0,9; znamená, že 2 sloupce zdrojové matice budou mapovány do 10 (9+1) sloupců ve výsledném CSV souboru, kde sloupce s indexy od 1 do 8 budou prázdné.
Například filecols:0,2,-1,1; znamená, že 4 sloupce zdrojové matice budou mapovány do 3 (2+1) sloupců ve výsledném CSV souboru, kde sloupec s indexem 2 zdrojové matice hodnot nebude vůbec uložen.
appnames - Seznam názvů sloupců zdrojové matice hodnot. Zadané názvy sloupců a pořadí musí odpovídat zdrojové matici hodnot. To znamená, že seznam musí mít tolik položek, kolik má sloupců zdrojová matice hodnot. Sloupce ve výsledném CSV souboru se mohou odlišovat od zdrojové matice hodnot, pokud se použije filtrace sloupců pomocí filecols. Názvy sloupců jsou nutné pro vytvoření hlavičky v souboru CSV.
sParams(String) Určuje způsob ukládání dat do 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).
"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ě.
charset:sss; (nepovinné) - Volba určuje znakovou sadu. Viz: Popis Unicode kódování znaků.
charset:ansi; (přednastaveno) - Textový obsah bude uložen v ANSI kódové stránce, která je právě aktivní v OS Windows (např. windows-1250).
charset:utf-8; - Textový obsah bude uložen v Unicode UTF-8 kódování (nezávislý na aktivní kódové stránce v OS Windows).
charset:utf-16; - Textový obsah bude uložen v Unicode UTF-16 kódování (nezávislý na aktivní kódové stránce v OS Windows).
bom:nnn; (nepovinné) - Volba určuje, zda na začátek nového textového souboru umístit BOM značku (3 bajty) pro identifikaci Unicode znakové sady.
bom:1; (přednastaveno) - Na začátek nového souboru bude umístěna BOM značka pro identifikaci Unicode znakové sady.
bom:0; - Na začátek nového souboru se žádná BOM značka pro identifikaci Unicode znakové sady neumísťuje. Tato volba je vhodná pro HTML nebo XML soubory, kde se BOM nemá dávat.
aValues(Array) Zdrojová matice hodnot (2-rozměrné pole), které budou zapsány do výsledného CSV souboru.
Vrácená hodnota:
true - při úspěchu
false - při chybě
Poznámka:
Pro čtení dat ze souboru CSV lze použít metoda FileCsvRead.

Tato metoda není funkční ve Web obrazech.
Příklad1:
Metoda zobrazí okno pro výběr souboru (přednastavený soubor je data.csv uložený ve složce aplikace). Pak ukládá data ze zdrojové matice hodnot aValues do vybraného souboru. Ukládají se všechny sloupce, 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 bResult = Pm.FileCsvWrite("#app:data.csv", "", "fileselect:yes;", aValues);
Příklad2:
Metoda ukládá data ze zdrojové matice hodnot aValues do souboru data.csv ve složce aplikace. Hodnoty v souboru jsou oddělené středníkem a soubor obsahuje v prvním řadku hlavičku názvy sloupců. Zdrojová matice má 4 sloupce (název, hodnota, jednotka, poznámka).
a) Uložení všech sloupců ze zdrojové matice hodnot s určením názvů sloupců a datových typů.
JavaScriptVBScriptVyber a zkopíruj do schránky

var bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:all;appnames:název,hodnota,jednotka,poznámka;", "colnameheader:yes;", aValues);
nebo
JavaScriptVBScriptVyber a zkopíruj do schránky

var bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:0,1,2,3;appnames:název,hodnota,jednotka,poznámka;", "colnameheader:yes;", aValues);
b) Uložení pouze 3 sloupců (bez sloupce "jednotka") ze zdrojové matice hodnot s prohozením pořadí ve výsledném CSV souboru (název,poznámka,hodnota), s určením názvů sloupců a datových typů. Protože zdrojová matice hodnot je stejná, zůstane stejný i seznam názvů sloupců.
JavaScriptVBScriptVyber a zkopíruj do schránky

var bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:0,2,-1,1;appnames:název,hodnota,jednotka,poznámka;", "colnameheader:yes;", aValues);

Historie:
Pm9.00.25: Nové volby charset:sss; a bom:nnn; umožňují Unicode CSV soubory.
Pm8.02.13:
- Vstupní matice hodnot aValues se voláním metody uzamkla a nešlo pak nad tímto polem volat například ReDim.
- Pokud bylo zadáno "fileselect:yes;" a nepotvrdilo se okno pro výběr souboru, pak metoda do souboru stejně zapsala.
Pm8.02.00: Vytvořeno
Navigace:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileCsvWrite
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.