Promotic

FileCsvWrite - metoda obiektu Pm

Opis:
Parametryzowany zapis danych do pliku CSV.
Składnia:
Boolean FileCsvWrite(String sFile, String sFields, String sParams, Array aValues)
Parametry:
sFile(String) Plik do zapisania. Bez względu na to, czy parametr ten jest lub nie jest ustawiony, to przy pomocy parametru fileselect można spowodować otwarcie dialogu do wyboru pliku.
Jeżeli nie jest wprowadzona pełna ścieżka, wtedy zostanie uzupełniona względem do foldera aplikacji.
Jest zalecane stosowanie ścieżki w składni PROMOTIC - patrz PROMOTIC ścieżka do plików lub folderów.
sFields(String) Określa, jak będą rozłożone kolumny ze źródłowej macierzy wartości do wyjściowego pliku CSV. Na przykład "filecols:0,1,2,3;appnames:nazwa,wartość,jednostka,notatka;".
filecols - Określa, w jaki sposób zostaną zapisane kolumny ze źródłowej macierzy wartości do wyjściowego pliku CSV. Jeżeli jest wprowadzone filecols:all; (domyślnie), wtedy zostaną zapisane wszystkie kolumny w tej samej kolejności.
Lista indeksów liczbowych, kiedy kolejno dla każdej kolumny macierzy źródłowej jest przedstawiony indeks (kolejność) w wyjściowym pliku CSV. Każda kolumna macierzy źródłowej może być zapisana do dowolnej kolumny w wyjściowym pliku CSV ewentualnie może być w pełni pominięta (wartość indeksu -1). To znaczy, że lista musi zawierać tyle pozycji, ile kolumn posiada źródłowa macierz wartości. Ilość kolumn w wyjściowym pliku CSV jest określona przez wartość maksymalnego indeksu (+1) w liście. podczas mapowania kolejności kolumn z macierzy źródłowej do wyjściowego pliku CSV mogą powstawać puste kolumny.
Na przykład filecols:0,9; oznacza, że 2 kolumny macierzy źródłowej zostaną namapowane do 10 (9+1) kolumn w wyjściowym pliku CSV, gdzie kolumny o indeksach od 1 do 8 będą puste.
Na przykład filecols:0,2,-1,1; oznacza, że 4 kolumny macierzy źródłowej będą namapowane do 3 (2+1) kolumn w wyjściowym pliku CSV, gdzie kolumna o indeksie 2 z macierzy źródłowej w ogóle nie będzie zapisana.
appnames - Lista nazw kolumn źródłowej macierzy wartości. Wprowadzone nazwy kolumn i ich kolejność muszą być zgodne ze źródłową macierzą wartości. To znaczy, że lista musi posiadać tyle pozycji, ile kolumn jest w źródłowej macierzy wartości. Kolumny w wyjściowym pliku CSV mogą być różne od źródłowej macierzy wartości, jeżeli zostanie zastosowane wyfiltrowanie kolumn przy pomocy filecols. Nazwy kolumn są konieczne do wytworzena nagłówka w pliku CSV.
sParams(String) Określa sposób zapisywania danych do pliku. Na przykład: "fileselect:yes;colnameheader:yes;delimiter:comma;"
"fileselect:xxx;" (opcjonalne)
yes - przez wywołanie metody jest wywołane okno do wyboru pliku niezależnie od ustawienia parametru sFile.
no (domyślnie)
"colnameheader:xxx;" (opcjonalne)
yes - w pierwszej linii pliku nie znajdują się dane lecz nazwy poszczególnych kolumn.
no (domyślnie) - w pierwszej linii pliku są zapisane dane.
"swap:xxx;" (opcjonalne)
yes (domyślnie) - kolumny z pliku są zapisane jako wiersze w macierzy wynikowej (w komórce data(i,j) jest wartość i-kolumny i j-wiersza pliku).
no - wiersze z pliku są zapisane jako wiersze w macierzy wynikowej (w komórce data(i,j) jest wartość i-wiersza i j-kolumny pliku).
"delimiter:xxx;" (opcjonalne) - (tylko dla CSV) Separator wartości w pliku CSV. Dozwolone wartości to:
semicolon (domyślnie) - separator jest średnik.
comma - separator jest przecinek.
space - separator jest spacja.
tab - separator jest tabulator.
number - tzn. separator jest określony numerem znaku ASCII (w układzie dziesiątkowym), na przykład "delimiter:124;" oznacza separator "|" (kreska pionowa).
"date.fmt:xxx;" (opcjonalne) - Format daty i czasu. Dozwolone wartości to:
system (domyślnie) - format daty i czasu jest określony przez ustawienie w SO Windows (np. 22.11.2010 16:30:15).
pm - format daty i czasu PROMOTIC z dokładnością do całych sekund (np. 2010.11.22 16:30:15).
pmmili - format daty i czasu PROMOTIC - dokładność 10 ms (np. 2010.11.22 16:30:15.250).
real - format daty i czasu typu danych Date w postaci liczby rzeczywistej (np. 41392.123456789).
"real.dsep:xxx;" (opcjonalne) - (tylko dla CSV) Format separatora miejsc dziesętnych dla liczb rzeczywistych. Dozwolone wartości to:
system (domyślnie) - separator dziesiętny jest określony przez ustawienie w SO Windows (np. 3,14).
dot - separator dziesiętny jest kropka (niezależnie na ustawienie SO Windows) (np. 3.14).
comma - separator dziesiętny jest przecinek (niezależnie na ustawienie SO Windows) (np. 3,14).
"lastcolsep:xxx;" (opcjonalne)
yes - Przy zapisie jest dodany separator za ostatnią wartość na wierszu, przy wczytaniu pusta wartość na końcu każdego wiersza jest pomijana. Z punktu widzenia pliku CSV taka funkcjonalność nie jest poprawną.
no (domyślnie) - Separatory są tylko pomiędzy wartościami w wierszu, nie są na końcu wiersza. Z punktu widzenia pliku CSV taka funkcjonalność jest poprawną.
charset:sss; (opcjonalne) - Opcja określa system kodowania znaków. Patrz: Opis kodowania znaków Unicode.
charset:ansi; (domyślnie) - Zawartość pliku zostanie zapisana w ANSI zestawie znaków, który jest na bieżąco aktywny w SO Windows (np. windows-1250).
charset:utf-8; - Zawartość pliku zostanie zapisana w zestawie znaków Unicode UTF-8 (niezależne od bieżącego zestawu znaków w SO Windows).
charset:utf-16; - Zawartość pliku zostanie zapisana w zestawie znakąw Unicode UTF-16 (niezależne od bieżącego zestawu znaków w SO Windows).
bom:nnn; (opcjonalne) - Opcja określa, czy na początek nowego pliku tekstowego należy zamiecić znak BOM (3 bajty) w celu identyfikacji zestawu znaków Unicode.
bom:1; (domyślnie) - Na początek nowego pliku zostanie zamieszczony znak BOM w celu identyfikacji zestawu znaków Unicode.
bom:0; - Na początek nowego pliku nie zostanie zamieszczony żadny znak BOM w celu identyfikacji zestawu znaków Unicode. Ta opcja jest odpowiednia dla plików HTML lub XML, do których BOM nie należy wstawiać.
aValues(Array) Źródłowa macierz wartości (tablica 2-wymiarowa), które będą zapisane wo wyjściowego pliku CSV.
Wartość zwrotna:
true - przy powodzeniu
false - przy błędzie
Notatka:
Do odczytu danych z pliku CSV można zastosować metoda FileCsvRead.

Metoda ta nie działa w Web panelach.
Przykład1:
Metoda wyświetli okno do wyboru pliku (wstępnie ustawionym plikiem jest data.csv znajdujący się w folderze aplikacji). Zapisuje dane z źródłowej macierzy wartości aValues do wybranego pliku. Zapisywane są wszystkie kolumny, wartości w pliku są oddzielone średnikiem a plik nie zawiera w pierwszym wierszu nazw kolumn.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var bResult = Pm.FileCsvWrite("#app:data.csv", "", "fileselect:yes;", aValues);
Przykład2:
Metoda zapisuje dane ze źródłowej macierzy wartości aValues do pliku data.csv w folderze aplikacji. Wartości w pliku są oddzielone średnikiem a plik zawiera w pierwszym wierszu nagłówek z nazwami kolumn. Macierz Źródłowa zawiera 4 kolumny (nazwa, wartość, jednostka, notatka).
a) Zapis wszystkich kolumn ze źródłowej macierzy wartości z określeniem nazw kolumn i typów danych.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:all;appnames:nazwa,wartość,jednostka,notatka;", "colnameheader:yes;", aValues);
lub
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:0,1,2,3;appnames:nazwa,wartość,jednostka,notatka;", "colnameheader:yes;", aValues);
b) Zapis tylko trzech kolumn (bez kolumny "jednostka") ze źródłowej macierzy wartości z zamianą kolejności w wyjściowym pliku CSV (nazwa,notatka,wartość), z określeniem nazw kolumn i typów danych. Ponieważ źródłowa macierz wartości jest taka sama, to zostanie również taka sama lista nazw kolumn.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:0,2,-1,1;appnames:nazwa,wartość,jednostka,notatka;", "colnameheader:yes;", aValues);

Historia:
Pm9.00.25: Nowe opcje charset:sss; oraz bom:nnn; umożliwiające kodowanie Unicode plików CSV.
Pm8.02.13:
- Wejściowa macierz wartości aValues poprzez wołanie metody została zamknięta i nie było możliwe ponad tą tablicą wołać na przykład ReDim.
- Jeżeli zostało określone "fileselect:yes;" oraz nie zostało potwierzdone okno do wyboru pliku, wtedy metoda i tak przeprowadziła zapis do pliku.
Pm8.02.00: Wytworzono
Nawigacja:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileCsvWrite
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.