Promotic
WikipediaLinkedInYoutubeTwitterFacebook

FileCsvWrite - metoda objektu Pm

Popis:
Parametrizovaný zápis dat do CSV souboru.
Syntaxe:
FileCsvWrite(sFile As String, sFields As String, sParams As String, aValues As Array) As Boolean
Volání:
bResult = Pm.FileCsvWrite(sFile, sFields, sParams, aValues)
Parametry:
sFile(String) Soubor k uložení. Nezávisle na tom, zda tento parametr je, či není nastaven, lze nastavením parametru fileselect nechat otevřít okno pro výběr souboru na disku. 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.

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). Znamená to, ž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. Znamená to, ž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 CSV souboru.
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án okno pro výběr souboru na disku 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é) - (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ě.
aValues(Array) Zdrojová matice hodnot (2-rozměrný Array), které budou zapsány do výsledného CSV souboru.
Vrácená hodnota:
true - operace proběhla úspěšně
false - operace NEproběhla úspěšně
Poznámka:
Pro čtení dat z CSV souboru slouží metoda FileCsvRead.
 
Tato metoda není funkční pro Web Obrazy.
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ěleny středníkem a soubor neobsahuje v prvním řadku názvy sloupců.
Dim bResult
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ěleny 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ů.

Dim bResult
bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:all;appnames:název,hodnota,jednotka,poznámka;", "colnameheader:yes;", aValues)
nebo
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ů.

bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:0,2,-1,1;appnames:název,hodnota,jednotka,poznámka;", "colnameheader:yes;", aValues)
Navigace:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileCsvWrite
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice