Akcia číta súbor formátu CSV. Meno súboru je dané hodnotou parametra
fName. Oddeľovač položiek v CSV súbore je daný hodnotou parametra
delimiter. Súbor môže používať riadkovanie znakmi
LF (Unix formát),
CR (Mac formát) alebo
CR LF (Dos formát).
Úspešnosť operácie je indikovaná výstupným parametrom
retCodeIdent_Int. Hodnota 0 znamená úspešný import, hodnota rôzna od 0 chybu.
V závislosti od parametra
destStruct akcia importuje:
- celú štruktúru - parameter je celá lokálna štruktúra,
- stĺpec štruktúry - parameter je odkaz na stĺpec štruktúry.
Formát CSV súboru je popísaný pri akcii
EXPORT_CSV.
Pokiaľ nie je použitý identifikátor
timeMaskIdent, v položkách s absolútnym časom sa očakáva formát
"dd.mm.rrrr hh:mi:ss". Ak je použitý, import času prebieha podľa zadanej masky. V prípade že chýba
hh,
mi alebo
ss, tieto sú dopĺňané automaticky 0.
Pri importe reálnych čísel je ako oddeľovač desatinných miest akceptovaný znak "." (bodka) aj "," (čiarka).
Pri importe celých a reálnych čísel z CSV súboru je ako oddeľovač tisícov akceptovaný znak medzera.
Ak je hodnota parametra
timeMaskIdent "" (prázdna maska), konverzia absolútneho času a reálnych hodnôt prebieha podľa nastavenia v
Regional and Language Options aktuálneho užívateľa na systémoch Windows. Pre iné operačné systémy je prázdna maska automaticky nahradená hodnotou
"dd.mm.rrrr hh:mi:ss".
V prípade konvertovania položky na typ Absolútny čas a zároveň je položka prázdny reťazec, akcia interpretuje takúto položku ako neplatnú hodnotu.
Ak je použité kľúčové slovo
TIME, predpokladá sa, že v CSV súbore sú zapísané aj časy vzniku hodnôt (CSV súbor má dvojnásobný počet stĺpcov).
Ak je použité kľúčové slovo
UTF8, akcia číta daný textový súbor a predpokladá, že je kódovaný vo formáte UTF-8. Preto pri jeho čítaní vykonáva konverziu UTF-8 -> WIN1250.
V prípade potreby je lokálnej premennej
destStruct zmenený rozmer. Tento je daný počtom riadkov v CSV súbore.
Parameter
timeZone určuje ako majú byť interpretované časové hodnoty. V prípade, že je zadaný prázdny text, sú časy interpretované ako lokálne časy. V prípade zadania názvu časovej zóny (napr. "Europe/London"), budú časy interpretované ako lokálne časy pre zadanú časovú zónu. V prípade zadania celočíselnej hodnoty, budú časy interpretované ako časy s fixným posunom voči UTC, kde zadaná hodnota parametra definuje posun voči UTC v sekundách. Z historických dôvodov sú akceptované aj hodnoty @FALSE - časy sú interpretované ako lokálne, a @TRUE - časy sú interpretované ako časy s fixným posunom 3600 sekúnd (1 hodina) voči UTC. Použitie hodnoty @TRUE sa neodporúča a generuje upozornenie pri ukladaní ESL skriptu. Odporúča sa nahradiť ju celočíselnou hodnotou.
Ak sú definované parametre
lineFrom a
lineTo, import prebieha od riadku definovaného parametrom
LineFrom po riadok
lineTo. Ak obidva parametre majú hodnotu -1, importuje sa celý CSV súbor.
Druhý variant akcie prečíta nasledujúcich
numLines riadkov z CSV súboru. Súbor musí byť otvorený funkciou
FIO_OpenRead.
Akciu je výhodné použiť pri veľkých CSV súboroch, ktoré sa neodporúča čítať naraz.
Oddeľovač v CSV súbore (parameter
delimiter) je možné získať volaním funkcie
%GetCSVDelimiter.
Parameter
_colMap umožňuje zadefinovať stĺpce cieľovej štruktúry a poradie, v akom sa budú postupne vkladať dáta z importovaného súboru. Názvy stĺpcov musia byť oddelené oddeľovačom = delimiter. V prípade potreby ignorovania niektorých sĺpcov z .csv súboru, je potrebné tieto stĺpce zadefinovať v parametri
_colMap pomocou oddeľovača.
Ak sa názvy stĺpcov v
_colMap nezhodujú s definíciou štruktúry, skript vyhlási chybu "Invalid name of Cols in ColMap: názvy zlých stĺpcov".
Ak parameter
_colMap obsahuje string nulovej dĺžky, skript vyhlási chybu "ColMap is empty".
Ak je v .csv súbore počet stĺpcov menší ako požadovaný, neexistujúce stĺpce sa importujú ako neplatné hodnoty!Príklad použitia:
- bez ignorovania stĺpcov
SD.Data má stĺpce DATE, VALUE, NR
*.CSV má hlavičku NR, DATE, VALUE, DESCRIPT, ID
premenná _colMap môže obsahovať: - s ignorovanými stĺpcami
SD.Data má stĺpce ID, VALUE, NR
*.CSV má hlavičku NR, DATE, VALUE, DESCRIPT, ID
premenná _colMap môže obsahovať:- NR;;VALUE;;ID
- NR;;;;ID
- ;;VALUE;;ID