Akcia IMPORT_CSV_TEXT


Funkcia
Import stĺpca alebo celej štruktúry z textu vo formáte CSV.


Deklarácia
IMPORT_CSV_TEXT destStruct, delimiter, inputIdent_Text, timeZone, retCodeIdent_Int[, timeMaskIdent [, lineFrom [, lineTo]]] [TIME]
Parametre
destStructinIdentifikátor stĺpca alebo identifikátor celej lokálnej premennej typu Record.
delimiterinIdentifikátor typu Text - oddeľovač v CSV.
inputIdent_TextinText vo formáte CSV
timeZoneinParameter typu Text, Int alebo Bool - určuje ako budú interpretované časové značky.
timeMaskIdentinIdentifikátor typu Text - maska pre čítanie hodnoty typu Absolútny čas.
retCodeIdent_IntoutNávratová hodnota typu Int - úspešnosť akcie.
lineFrominParameter typu Int - počiatočný riadok.
lineToinParameter typu Int - koncový riadok.
TIMEinKľúčové slovo.
Návratový kód
Hodnota parametra retCodeIdent_Int - pozri tabuľku chybových stavov.
Popis
Akcia číta text vo formáte CSV. Oddeľovač položiek v CSV je daný hodnotou parametra delimiter. Text 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 textu je popísaný pri akcii EXPORT_CSV_TEXT.

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 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ú zapísané aj časy vzniku hodnôt (CSV má dvojnásobný počet stĺpcov).

V prípade potreby je lokálnej premennej destStruct zmenený rozmer. Tento je daný počtom riadkov v CSV texte.

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 text.

Oddeľovač v CSV (parameter delimiter) je možné získať volaním funkcie %GetCSVDelimiter.

Príklad
Parameter timeMaskIdent je možné vynechať nasledujúcim spôsobom:
 


 IMPORT_CSV destStruct, delimiter, fName, timeZone, retCodeIdent_Int, , lineFrom, lineTo

Súvisiace stránky:

Napíšte komentár