Promotic
WikipediaLinkedInYoutubeTwitterFacebook

LoadFromFile - metoda obiektu PmDataTable

Opis:
Wczytanie danych dla tego obiektu z pliku typu INI lub CSV.
Składnia:
LoadFromFile(sFile As String, sParams As String) As Boolean
Wołanie:
b = oDataTable.LoadFromFile(sFile, 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ę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.

sParams(String) Dodatkowe parametry określających sposób wczytania z pliku. Dane są tutaj w formacie PmNamedValues, 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 określonym pliku. Jeżeli nie jest ustawione, wtedy wartością domyślną jest "fmt:standard;". Są możliwe następujące formaty:
standard - Znaczenie różni się w zależności 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ścią domyślną 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. 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ą.
Wartość zwrotna:
true - Wczytanie przebiegło pomyślnie (do tabeli została wczytana przynajmniej jedna wartość)
false - W innym przypadku
Notatka:

Ta metoda nie zmienia ilości i nazw kolumn jest więc ważnym przy wywołaniu tej metody mieć ustawione kolumny (np. w zakładce 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 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 zakładce konfiguracyjnej DataTable.

Wczytywanie 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): Na początku jest każda komórka pusta. Pustą komórką jest również komórka z wartością 0, 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 katalogu aplikacji. Separatorem wartości będzie średnik, separatorem dziesiętnym liczb rzeczywistych będzie kropka i format daty będzie w systemowym formacie PROMOTIC.
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 znajdującego się w katalogu aplikacji.
oDataTable.LoadFromFile "#app:CfgData.ini", "filetype:ini;rowname:boiler;"
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice