Promotic
WikipediaLinkedInYoutubeTwitterFacebook

FileCsvWrite - metoda obiektu Pm

Opis:
Parametryzowany zapis danych do pliku CSV.
Składnia:
FileCsvWrite(sFile As String, sFields As String, sParams As String, aValues As Array) As Boolean
Wołanie:
bResult = Pm.FileCsvWrite(sFile, sFields, sParams, aValues)
Parametry:
sFile(String) Plik do zapisania. Niezależnie od tego, czy ten parametr jest czy też nie jest ustawiony, to przy pomocy parametru fileselect można spowodować otwarcie dialogu do wyboru pliku na dysku. Jeżeli nie jest wprowadzona pełna ścieżka, wtedy zostanie uzupełniona względnie w stosunku do foldera aplikacji.

Zalecanym jest 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 wyjsćiowego 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łany dialog do wyboru pliku na dysku 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 pliku są zapisane jako wiersze w macierzy wynikowej (w komórce data(i,j) jest wartość i-kolumny i j-linii pliku).
no - wiersze pliku są zapisane jako wiersze w macierzy wynikowej (w komórce data(i,j) jest wartość i-linii i j-kolumny pliku).
"delimiter:xxx;" (opcjonalne) - (tylko dla CSV) Separator wartości w pliku CSV. Zezwolone wartości to:
semicolon (domyślnie) - separatorem jest średnik.
comma - separatorem jest przecinek.
space - separatorem jest spacja.
tab - separatorem jest tabelator.
number - tzn. separator jest określony numerem dziesiątkowym znaku ASCII, na przykład "delimiter:124;" oznacza separator "|" (kreska pionowa).
"date.fmt:xxx;" (opcjonalne) - Format daty i czasu. Zezwolone parametry 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 czasu i daty PROMOTIC z dokładnością do całych sekund (np. 2010.11.22 16:30:15).
pmmili - format czasu i daty PROMOTIC z dokładnością do milisekund (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. Zezwolone wartości to:
system (domyślnie) - separator dziesiętny jest określony przez ustawienie w SO Windows (np. 3,14).
dot - separatorem dziesiętnym jest (bez względu na ustawienie SO Windows) kropka (np. 3.14).
comma - separatorem dziesiętnym jest (bez względu na ustawienie SO Windows) przecinek (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ą.
aValues(Array) Źródłowa macierz wartości (2-wymiarowe Array), 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ć metodę FileCsvRead
 
Metoda ta nie działa w panelach w języku JavaScript (dlatego nie działa również w Web panelach).
Przykład1:
Metoda wyświetla dialog do wyboru pliku (wstępnie ustawionym plikiem jest data.csv znajdujący się w katalogu 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.
VBScriptWybierz oraz skopiuj do schowka

Dim bResult
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) Zapisanie wszystkich kolumn ze źródłowej macierzy wartości z określeniem nazw kolumn i typów danych.

VBScriptWybierz oraz skopiuj do schowka

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

Dim bResult
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.

VBScriptWybierz oraz skopiuj do schowka

Dim bResult
bResult = Pm.FileCsvWrite("#app:data.csv", "filecols:0,2,-1,1;appnames:nazwa,wartość,jednostka,notatka;", "colnameheader:yes;", aValues)
Navigacja:
 
- 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