Promotic

LoadFromFile - metoda obiektu PmaDataTable

Opis:
Wczytanie danych dla tego obiektu z pliku typu INI lub CSV.
Składnia:
Boolean LoadFromFile(String sFile, String sParams)
Parametry:
sFile(String) Nazwa pliku ze ścieżką, z którego dane mają być wczytane. Plik nie musi posiadać rozszerzenia "ini" lub "csv", typ pliku jest określany na podstawie wprowadzonego parametru filetype.
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.
sParams(String) Dodatkowe parametry określających sposób wczytania z pliku. Dane są tutaj w formacie KeyVal, na przykład "filetype:ini;fmt:trans;rowname:boiler;".
"filetype:xxx;" (obowiązkowe) - Określa typ pliku zdefiniowany w parametrze sFile
ini - typ znaczy plik INI.
csv - plik typu CSV. Chodzi o wielowierszowy plik wartości tekstowych na przykład oddzielone średnikiem. Powszechnie stosowany na przykład w oprogramowaniu MsExcel.
"fmt:xxx;" (opcjonalne) - Określa format zapisanych danych w pliku. Jeżeli nie jest ustawione, wtedy wartością domyślną jest "fmt:standard;". Są możliwe następujące formaty:
standard - Znaczenie jest zależne od typu pliku:
csv - Wartości w wierszach CSV pliku są zapisane do odpowiednich wierszy w tabeli
ini - Sekcja pliku INI oznacza nazwy wierszy a klucze pliku INI oznaczają nazwy kolumn tabeli. Przykład:
[r0]
colname1=boiler1
colname2=boiler2
[r1]
colname1=12
colname2=15
trans - Sekcja pliku INI oznacza nazwy kolumn tabeli a klucze pliku INI oznaczają nazwy wierszy tabeli. Przykład:
[colname1]
r0=boiler1
r1=12
[colname2]
r0=boiler2
r1=15
"rowname:xxx;" (opcjonalne) - (tylko dla INI) Określa nazwę wiersza. Jeżeli nie jest ustawione, wtedy wartość domyślna jest "rowname:r;". Nazwa wiersza jest tworzona przez ten tekst uzupełniona o indeks wiersza, na przykład jeżeli "rowname:rrr;", wtedy nazwy kolumn będą "rrr0", "rrr1", itd.
"colnameheader:xxx;" (opcjonalne) - (tylko dla CSV)
no (domyślnie) - dane są zapisane już w pierwszym wierszu pliku.
yes - w pierwszym wierszu pliku nie znajdują się dane lecz nazwy poszczególnych kolumn.
"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 (bez względu na ustawienie SO Windows) (np. 3.14).
comma - separator dziesiętny jest przecinek (bez względu 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 - Wczytanie przebiegło pomyślnie (do tabeli została wczytana przynajmniej jedna wartość)
false - W innym przypadku
Notatka:
Metoda ta nie zmienia ilości i nazw kolumn jest więc ważnym przy wywołaniu tej metody mieć ustawione kolumny (np. w karcie "Kolumny" lub przy pomocy metody InsertCol).
Metoda wczytuje dane z pliku i zapisuje je do istniejąych wierszy w tabeli (od początku tabeli). Jeżeli w pliku jest więcej wierszy niż w tabeli, wtedy ilość wierszy w tabeli zostanie zwiększona na odpowiednią ilość. Można więc wczytywać dane na przykład do tabeli, które nie posiada żadnych wierszy. Przy wczytywaniu nie można jednak przekroczyć maksymalnej ilości wierszy, która jest określona w karcie "DataTable".
Wczytywanie z pliku jest wykonywane po wierszach lub po kolumnach (według parametru fmt). Jeżeli jest osiągnięty koniec wiersza/kolumny, wtedy przechodzi na następny. W pliku nie muszą więc znajdować się wszystkie wartości wiersza/kolumny.

Kolumny "Tylko do odczytu" (ReadOnly):
Każda komórka jest na początku pusta. Pustą komórką jest również komórka z wartością 0 lub pustym łańcuchem "". Do takiej komórki można wpisać nową wartość. Po zapisie niepustej niezerowej wartości w kolumnie "Tylko do odczytu" dojdzie do "zamknięcia komórki". "Zamknięta komórka" stanie się stałą, bez możliwości zapisu. Do pozostałych "niezamkniętych" komórek można nadal zapisywać. W przypadku metod, które umożliwiają zapis do większej ilości komórek, zostanie wykonany zapis tylko do "niezamkniętych komórek", zawartość "zamkniętych komórek" pozostanie bez zmian.
Przykład1:
Ustawienie obiektu z konfiguracyjnego pliku CSV CfgData.csv znajdującego się w folderze aplikacji. Separatorem wartości będzie średnik, separatorem dziesiętnym liczb rzeczywistych będzie kropka i format daty będzie w systemowym formacie PROMOTIC.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oDataTable = pMe.Pm("/DataTable");
oDataTable.LoadFromFile("#app:CfgData.csv", "filetype:csv;colnameheader:no;delimiter:semicolon;real.dsep:dot;date.fmt:pm;");
Przykład2:
Ustawienie obiektu z konfiguracyjnego pliku INI CfgData.ini w folderze aplikacji.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oDataTable = pMe.Pm("/DataTable");
oDataTable.LoadFromFile("#app:CfgData.ini", "filetype:ini;rowname:boiler;");

Historia:
Pm8.03.15: Usunięty błąd: Czasami w metodzie wystąpił błąd podczas wczytywania pustego pliku CSV.
© MICROSYS, spol. s r. o.