Promotic
WikipediaLinkedInYoutubeTwitterFacebook

FileCsvRead - metoda obiektu Pm

Opis:
Parametryzowany odczyt danych z pliku CSV.
Składnia:
FileCsvRead(sFile As String, sFields As String, sParams As String) As Variant
Wołanie:
data = Pm.FileCsvRead(sFile, sFields, sParams)
Parametry:
sFile(String) Plik do wczytania. 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, 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. 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 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 wyłącznie kolumny 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 wyjsćiowej macierzy wartości, jeżeli zostanie zastosowana filtracja kolumn za pomocą 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ł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).
"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:
- Zwraca macierz (tzn. 2-wymiarowe Array), jeżeli jest odczytywana więcej niż jedna kolumna z pliku.
- Zwraca wektor (tzn. 1-wymiarowe Array), jeżeli jest odczytywana wyłącznie jedna kolumna z pliku.
- Zwraca wartość typu danych Empty, jeżeli odczyt danych nie powiedzie się.
Notatka:
Do wytworzenia i zapisu danych do pliku CSV służy metoda FileCsvWrite. Jednak do tego celu można wykorzystać również metodę FileTextWrite (patrz Przykład2 w opisie tej metody).
 
Metoda ta nie działa 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), wczytuje dane wybranego pliku z wszystkich kolumn. Wartości są oddzielone średnikiem oraz plik nie zawiera w pierwszej linii nazw kolumn.
VBScriptWybierz oraz skopiuj do schowka

Dim vData
vData = Pm.FileCsvRead("#app:data.csv", "filecols:all;", "delimiter:semicolon;colnameheader:no;fileselect:yes;")
If Pm.IsValid(vData) Then
  '... Jeżeli dnae zostały wczytane bezbłędnie
End If
Przykład2:
Metoda wczytuje dane z pliku data.csv (nazwa,wartość,jednostka,notatka) znajdującego się w katalogu 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 i double. Wartości w pliku są oddzielone średnikiem a plik nie zawiera w pierwszej linii nazw kolumn.
VBScriptWybierz oraz skopiuj do schowka

Dim sParams, vData
sParams = "delimiter:semicolon;colnameheader:no;"
vData = Pm.FileCsvRead("#app:data.csv", "filecols:0,3,1;datatypes:string,string,double;", sParams)
If Pm.IsValid(vData) Then
  '... Jeżeli dnae zostały wczytane bezbłędnie
End If
Navigacja:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- FileCsvRead
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice