- Vytvoril D2000 Dev Team na nov 24, 2022
Vidíte historickú verziu tejto stránky. Pozrite si aktuálnu verziu.
Porovnať s aktuálnou verziou Zobraziť históriu stránky
Verzia 1 Ďalej »
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
destStruct | in | Identifikátor stĺpca alebo identifikátor celej lokálnej premennej typu Record. |
delimiter | in | Identifikátor typu Text - oddeľovač v CSV. |
inputIdent_Text | in | Text vo formáte CSV |
timeZone | in | Parameter typu Text, Int alebo Bool - určuje ako budú interpretované časové značky. |
timeMaskIdent | in | Identifikátor typu Text - maska pre čítanie hodnoty typu Absolútny čas. |
retCodeIdent_Int | out | Návratová hodnota typu Int - úspešnosť akcie. |
lineFrom | in | Parameter typu Int - počiatočný riadok. |
lineTo | in | Parameter typu Int - koncový riadok. |
TIME | in | Kľúč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. 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:
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.
Ú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.
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
Príklad 2
Prečítanie celého CSV súboru po 1000 riadkoch:
Súvisiace stránky:
- Žiadne štítky