Promotic

SaveToFile - metoda obiektu PmaTrendGroup

Opis:
Zapis danych tego obiektu do pliku typu CSV lub DBF.
Zapisane są wszystkie kolumny według ustawienia parametru sWhat oraz wartości według określonia parametru vFilter.
Składnia:
Boolean SaveToFile(String sWhat, String sFile, Variant vFilter, String sParams)
Parametry:
sWhat(String) Specyfikacja zmiennej (lub zmiennych), której zapisane wartości mają zostać zwrócone. Można wprowadzić na przykład:
"a1;" lub "a1;a2;a3;", jeżeli ma zostać zwrócona tablica zmiennych karty "Dane", lub
"time;", jeżeli ma zostać zwrócona tablica czasów, lub
"attr;", jeżeli ma zostać zwrócona tablica atrybutów rekordu, lub
"*;", jeżeli mają zostać zwrócone wszystkie kolumny włącznie z kolumną czasu i atrybutów, lub
"*data;", jeżeli mają zostać zwrócone wszystkie kolumny danych. W tym przypadku na przykład "time;*data;" oznacza zwrócenie kolumny czasu oraz wszysktich kolumn danych.

W przypadku danych jest konieczne zachowanie kolejności według kolejności w karcie. Na przykład jeżeli kolejność zmiennych w karcie jest następująca a1,a2,a3,..., wtedy w parametrze można wprowadzić na przykład "a1;a3;", lecz "a3;a1" jest już błędnym zapisem.
Wybór czasu można zmienić przez wprowadzenie "time:winter;", wtedy wszytkie wartości czasu zostaną zwrócone jako "czas zimowy", w innym przypadku będą jako "czas lokalny".
sFile(String) Nazwa pliku ze ścieżką, do którego mają być zapisane dane.
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.
vFilter(Variant) Wartość określająca na przykład zakres czasu pozyskiwanych wartości (czas od, czas do, ilość punktów, itd.), ewentualnie czy dane mają być filtrowane według wartości. Jest wytworzona przez wywołanie metod CreateFilter, AddFilter.
sParams(String) Tekstowa lista parametrów określająca sposób zapisu do pliku. Dane są tutaj w formacie KeyVal, na przykład "filetype:csv;fmt:standard;".
"filetype:xxx;" (obowiązkowe) - Określa typ pliku określony w parametrze sFile. Możliwe są następujące typy plików:
csv - plik typu CSV. Chodzi o wielowierszowy plik wartości tekstowych na przykład oddzielone średnikiem. Powszechnie stosowany na przykład w oprogramowaniu MsExcel.
dbf - plik typu DBF w formacie dBase III. Powszechnie stosowany na przykład w orogramowaniu MsExcel.
"fmt:xxx;" (opcjonalne) - Określa format zapisanych danych w pliku. Są możliwe następujące formaty:
standard - (tylko dla CSV) wartości w wierszach w tabeli są zapisane w odpowiednich wierszach pliku CSV
"head:xxx;" (opcjonalne) - (tylko dla CSV)Określa, czy w pliku będzie zapisany również jednowierszowy nagłówek zawierający nazwy kolumn. Dozwolone wartości to:
no (domyślnie) - Nagłówek nie jest włożony.
name - Nagłówek jest częścią pliku, w nagłówku znajdują się nazwy kolumn. (Wartości właściwości PmVar.Name).
displayname - Nagłówek jest włożony. W nagłówku znajdują się nazwy zmiennych do wyświetlenia (wartości właściwości ExtTrend.DisplayName).
"timeorder:xxx;" (opcjonalne) - Określa, czy wiersze wartości będą zesortowane w czasie rosnąco lub malejąco
asc (domyślnie) - wiersze wartości będą zesortowane w czasie rosnąco
desc - wiersze wartości będą zesortowane w czasie malejąco
"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ą.
Wartość zwrotna:
true - zapis przebiegł pomyślnie
false - W innym przypadku
Przykład:
Zapis ostatniej godziny wartości wybranych danych do pliku Data.csv. W pierwszym wierszu będą identyfikatory poszczególnych danych, separatorem wartości jest średnik, separator dziesiętny liczb rzeczywistych według SO Windows i format daty według SO Windows.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var tNow = Pm.Time;
var oTrend = pMe.Pm("/Trends");
var vFilter = oTrend.CreateFilter(tNow - 1 / 24, 1, tNow, 1, -1);

if (oTrend.SaveToFile("time;a1;a2;a3;", "Data.csv", vFilter, "filetype:csv;head:name;"))
{
// Data.csv file created OK
}

Historia:
Pm8.00.12: Metoda dla formatu DBF zwraca wartość true przy powodzeniu.
Pm8.00.09: Uogólnienie o:
- możliwość zapisu do pliku dBase (DBF), patrz "filetype:dbf;".
- możliwość określenia, czy znakiem dziesiętnym liczby rzeczywistej ma być kropka lub przecinek, patrz "real.dsep:xxx;".
- możliwość określenia formatu data oraz czas, patrz parametr "date.fmt:xxx;".
© MICROSYS, spol. s r.o.