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
bMonoTimes upravuje prácu s časom vzhľadom na posun letný/zimný čas. Ak je jeho hodnota @TRUE, všetky časové hodnoty
budú pri konverzii prepočítané na normálny monotónny (t.j. zimný) čas.
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