Update cookies preferences
Promotic

FileCsvRead - metoda obiektu Pm

Opis:
Parametryzowany odczyt danych z pliku CSV - tekstowy format wymiany danych.
Składnia:
Variant FileCsvRead(String sFile, String sFields, String sParams)
Parametry:
sFile(String) Plik do wczytania. 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, które kolumny z pliku będą wczytane i jakie typy danych będą posiadaś wczytane dane. Na przykład "filecols:0,1,2,3;datatypes:string,double,string,string;".
filecols - Określa, które kolumny z pliku źródłowego CSV znajdą się w docelowej macierzy wartości. Jeżeli jest ustawione filecols:all; (domyślnie), wtedy zostaną zapisane wszystkie kolumny w identycznej kolejności.
Lista liczbowych indeksów, kiedy stopniowo dla każdej kolumny docelowej macierzy wartości określany jest indeks (kolejność) w pliku źródłowym CSV. Każda kolumna docelowej macierzy może zostać wczytana z dowolnej kolumny w pliku źródłowym CSV. To znaczy, że lista musi zawierać tyle pozycji, ile kolumn zawiera docelowa macierz wartości.
Jeżeli jest ustawione filecols:all; (domyślnie), wtedy zostaną wczytane wszystkie kolumny.
Jeżeli jest ustawione na przykład filecols:0,1,3,8;, wtedy zostaną wczytane tylko kolumny z pliku określone indeksem w parametrze (indeksowane od 0).
datatypes - Lista typów danych kolumn w wyjściowej macierzy wartości. Typ danych kolumny określa sposób wczytania wartości z odpowiedniej kolumny pliku CSV. Podstawowe typy danych kolumn oraz ich kolejność musi odpowiadać wyjściowej macierzy wartości. To znaczy, że lista musi zawierać tyle pozycji, ile kolumn posiada wyjściowa macierz wartości. Kolumny w źrodłowym pliku CSV mogą być różne od wyjściowej macierzy wartości, jeżeli zostanie zastosowana filtracja kolumn przy pomocy filecols. Dopuszczalnymi nazwami typów danych: string, byte, integer, bool, single, double. Na przykład datatypes:string,integer,bool,single;
Jeżeli nie jest ustawione, wtedy jest string.
sParams(String) Określa sposób wczytania danych z 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).
"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:
- Jeżeli jest odczytywana więcej niż jedna kolumna z pliku, wtedy zwraca tablica 2-wymiarowa,
- Jeżeli jest odczytywana tylko jedna kolumna z pliku, wtedy zwraca tablica 1-wymiarowa.
- Jeżeli odczyt danych nie powiedzie się, wtedy zwraca: null dla JavaScript lub Empty dla VBScript (można sprawdzić przy pomocy metody Pm.IsValid).
Notatka:
Do wytworzenia i zapisu danych do pliku CSV służy metoda FileCsvWrite. Jednak do tego celu można zastosować również metodę FileTextWrite (patrz Przykład2 w opisie tej metody).

Metoda ta nie działa w Web panelach.
Przykład1:
Metoda wyświetla okno do wyboru pliku (wstępnie ustawionym plikiem jest data.csv znajdujący się w folderze aplikacji), wczytuje dane wybranego pliku z wszystkich kolumn. Wartości w pliku są oddzielone średnikiem oraz plik nie zawiera w pierwszej linii nazw kolumn.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var vData = Pm.FileCsvRead("#app:data.csv", "filecols:all;", "delimiter:semicolon;colnameheader:no;fileselect:yes;");
if (Pm.IsValid(vData))
{
// ... Jeżeli dnae zostały wczytane bezbłędnie
}
Przykład2:
Metoda odczyta dane z pliku data.csv (nazwa,wartość,jednostka,notatka) znajdującego się w folderze aplikacji. Wczytuje 3 kolumny ze zmienioną kolejnością (nazwa,notatka,wartość, tzn. kolumny 0,3,1) a wynik zostanie zapisany do macierzy vData. Wartości w wyjściowej macierzy są w kolejności typów danych string, string oraz double. Wartości w pliku są oddzielone średnikiem a plik nie zawiera w pierwszej linii nazw kolumn.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var sParams = "delimiter:semicolon;colnameheader:no;";
var vData = Pm.FileCsvRead("#app:data.csv", "filecols:0,3,1;datatypes:string,string,double;", sParams);
if (Pm.IsValid(vData))
{
// ... Jeżeli dnae zostały wczytane bezbłędnie
}

Historia:
Pm8.00.00: Umożliwia wprowadzić dowolny typ separatora ("delimiter:xxx;").
Nawigacja:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileCsvRead
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.