user:skript:csvuniimport
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
user:skript:csvuniimport [2013/07/15 08:25] – gord | user:skript:csvuniimport [2019/06/13 20:22] (current) – mikrom | ||
---|---|---|---|
Line 15: | Line 15: | ||
===== Diskuze ===== | ===== Diskuze ===== | ||
- | + | Diskuze o tomto skriptu je k dispozici na [[http:// | |
- | * Diskuze o tomto skriptu je k dispozici na [[http:// | + | |
===== Popis funkce ===== | ===== Popis funkce ===== | ||
Line 34: | Line 32: | ||
* pokouší se zjistit, zda v jednom řádku vstupního souboru jsou informace o keši i waypointu nebo jsou informace v samostatných řádcích | * pokouší se zjistit, zda v jednom řádku vstupního souboru jsou informace o keši i waypointu nebo jsou informace v samostatných řádcích | ||
- | * :!: Poznámky: | + | * <WRAP round info> |
+ | Poznámky: | ||
* protože informace o keši celkem běžně obsahují v textu čárku ve větě, plugin má jako implicitní oddělovač sloupců středník | * protože informace o keši celkem běžně obsahují v textu čárku ve větě, plugin má jako implicitní oddělovač sloupců středník | ||
* při automatickém rozeznávání parametrů souborů jde vždy jen o odhad. Je lépe, když uživatel ví, jaká data a v jakém formátu importuje a může odhad zkontrolovat a případně parametry upravit | * při automatickém rozeznávání parametrů souborů jde vždy jen o odhad. Je lépe, když uživatel ví, jaká data a v jakém formátu importuje a může odhad zkontrolovat a případně parametry upravit | ||
* Aby byl soubor úspěšně zpracovatelný, | * Aby byl soubor úspěšně zpracovatelný, | ||
+ | </ | ||
+ | |||
Plugin dokáže ze souboru importovat následující hodnoty: | Plugin dokáže ze souboru importovat následující hodnoty: | ||
Line 52: | Line 53: | ||
< | < | ||
+ | <WRAP round important> | ||
Jestliže při importu není rodičovský bod v databázi nalezen a je konfigurací nastaveno, aby byl vytvořen pomocí GPX, pak mohou být importovány také některé další hodnoty náležející k rodičovskému bodu: | Jestliže při importu není rodičovský bod v databázi nalezen a je konfigurací nastaveno, aby byl vytvořen pomocí GPX, pak mohou být importovány také některé další hodnoty náležející k rodičovskému bodu: | ||
Line 69: | Line 71: | ||
Uvedený výčet je maximum, co může být importováno. V CSV souboru nemusí být žádná z uvedených hodnot, pak budou použity hodnoty implicitní, | Uvedený výčet je maximum, co může být importováno. V CSV souboru nemusí být žádná z uvedených hodnot, pak budou použity hodnoty implicitní, | ||
+ | |||
+ | Pokud již rodičovský bod v databázi je nebo není nastaveno, aby byl bod přidán pomocí GPX, není možné importovat informace, které patří ke keši a ne k waypointu - viz [[# | ||
+ | |||
+ | </ | ||
===== Postup při importu ===== | ===== Postup při importu ===== | ||
Line 74: | Line 80: | ||
- vybere CSV soubor pro zpracování a nastaví jeho správné **kódování** | - vybere CSV soubor pro zpracování a nastaví jeho správné **kódování** | ||
- | - spustí analýzu souboru. Výsledkem bude **odhad | + | - spustí analýzu souboru. Výsledkem bude **odhad |
* režim i seznam uživatel zkontroluje a pokud to bude potřeba, upraví | * režim i seznam uživatel zkontroluje a pokud to bude potřeba, upraví | ||
* ke kontrole sloupců by měl napomoci pod seznamem vypsaný první řádek souboru | * ke kontrole sloupců by měl napomoci pod seznamem vypsaný první řádek souboru | ||
Line 81: | Line 87: | ||
- spustí import vytvořeného GPX souboru. Po importu bude zobrazen přehled počtu importovaných bodů (keší a waypointů) ve standardním importním dialogu. | - spustí import vytvořeného GPX souboru. Po importu bude zobrazen přehled počtu importovaných bodů (keší a waypointů) ve standardním importním dialogu. | ||
- | :!: Důsledkem chybně nastaveného kódování vstupního souboru může být až nemožnost uložit keše do GPS, věnujte mu tedy pozornost. | + | <WRAP round important> |
+ | Důsledkem chybně nastaveného kódování vstupního souboru může být až nemožnost uložit keše do GPS, věnujte mu tedy pozornost. | ||
+ | </ | ||
===== Ukázky ===== | ===== Ukázky ===== | ||
Line 88: | Line 96: | ||
{{ : | {{ : | ||
- | Výsledek převodu z CSV souboru do GPX. Chybný řádek s keškou GC18YCX opravit nedokážeme, | + | Výsledek převodu z CSV souboru do GPX. Chybný řádek s keškou GC18YCX opravit nedokážeme, |
{{ : | {{ : | ||
Line 95: | Line 103: | ||
==== Analýza ==== | ==== Analýza ==== | ||
- | |||
Bývá obvyklé, že obsah sloupců v CSV souboru je obalen uvozovkami, ale pro práci pluginu to není nezbytné. Plugin se pokusí sám zjistit přítomnost tohoto obalení podle prvního znaku souboru. Je tedy potřeba, aby všechny řádky používaly nebo nepoužívaly uvozovky stejně. | Bývá obvyklé, že obsah sloupců v CSV souboru je obalen uvozovkami, ale pro práci pluginu to není nezbytné. Plugin se pokusí sám zjistit přítomnost tohoto obalení podle prvního znaku souboru. Je tedy potřeba, aby všechny řádky používaly nebo nepoužívaly uvozovky stejně. | ||
Line 109: | Line 116: | ||
* **smíšený** - na jednom řádku souboru jsou informace o keši i waypointu, vždy v samostatných sloupcích. Typickým představitelem souboru zpracovávaném v tomto režimu může být výstup z Excelu, kde si uživatel uchovával vypočtené finálové souřadnice, | * **smíšený** - na jednom řádku souboru jsou informace o keši i waypointu, vždy v samostatných sloupcích. Typickým představitelem souboru zpracovávaném v tomto režimu může být výstup z Excelu, kde si uživatel uchovával vypočtené finálové souřadnice, | ||
- | * **samostatný** - informace o keši jsou na jiném řádku než informace o waypointu. Typickým představitelem souboru zpracovávaného v tomto režimu je výstup z pluginu [[user: | + | * **samostatný** - informace o keši jsou na jiném řádku než informace o waypointu. Typickým představitelem souboru zpracovávaného v tomto režimu je výstup z pluginu [[user: |
Plugin se pokouší během analýzy souboru zjistit, jak je vstupní soubor organizován. Výsledek odhadu pochopitelně nemusí být stoprocentní. Uživatel by měl vědět, co vlastně chce importovat, proto má možnost režim po analýze změnit. Při odhadu režimu se plugin rozhoduje podle | Plugin se pokouší během analýzy souboru zjistit, jak je vstupní soubor organizován. Výsledek odhadu pochopitelně nemusí být stoprocentní. Uživatel by měl vědět, co vlastně chce importovat, proto má možnost režim po analýze změnit. Při odhadu režimu se plugin rozhoduje podle | ||
* seznamu sloupců - pokud existují sloupce pro waypointy (podle jména sloupce) i pro keše, předpokládá // | * seznamu sloupců - pokud existují sloupce pro waypointy (podle jména sloupce) i pro keše, předpokládá // | ||
- | * obsahu sloupce s ID keše - pokud v prvních 100 řádcích souboru je nalezeno ID keše, jehož první dva znaky neodpovídají prefixu pro rodičovský bod (PARENT_PREFIX v konfiguraci), | + | * obsahu sloupce s ID keše - pokud v prvních 100 řádcích souboru je nalezeno ID keše, jehož první dva znaky neodpovídají |
- | ==== Kontroly | + | <WRAP round important> |
+ | Pozor na nastavení souřadnic. Pokud z analýzy vyjde // | ||
+ | </ | ||
- | Při vlastním převodu je kontrolován **kód keše**. Ten musí být formálně platný a navíc pro import waypointu musí být keš v databázi. Pokud kód keše platný není, je hlášena chyba. Jestliže keš v databázi není, může být v závislosti na konfiguraci hlášena chyba, keš **vytvořena** nebo **importována** pomocí GClive (import přes Geojarry není podporován). Vytvořená keš bude mít vlastnosti zadané v CSV souboru nebo, pokud v něm nejsou uvedeny, budou použity přednastavené vlastnosti a ostatní informace o ní nebudou. O neplatnosti kódu keše, vytvoření keše v databázi a případném importu keše je uživatel informován v protokolu. | ||
- | **Prefix waypointu** musí být v rámci | + | ==== Kontroly při převodu do GPX ==== |
+ | Při vlastním převodu je kontrolován | ||
- | ===== Převod do GPX, import do databáze GeoGetu ===== | + | **Prefix waypointu** musí být v rámci keše (rodičovského bodu) jedinečný. Plugin se pokusí prefix načíst z importovaného souboru. Pokud jej v souboru nezíská, použije implicitní hodnotu. Jestliže již waypoint s takto získaným prefixem existuje, plugin automaticky najde jedinečný prefix a o jeho změně informuje v protokolu. |
Z výše uvedeného popisu kontrol vyplývá, že pluginem **nelze měnit** hodnoty uložené v databázi. Waypoint je vždy vytvořen nový a přidán, keš je přidávána jen v případě, že v databázi ještě neexistuje. (Od verze 1.2.4 je sice možné importem přepisovat v databázi existující WP, ale parametry rodičovských bodů měnit stále nelze.) | Z výše uvedeného popisu kontrol vyplývá, že pluginem **nelze měnit** hodnoty uložené v databázi. Waypoint je vždy vytvořen nový a přidán, keš je přidávána jen v případě, že v databázi ještě neexistuje. (Od verze 1.2.4 je sice možné importem přepisovat v databázi existující WP, ale parametry rodičovských bodů měnit stále nelze.) | ||
Line 130: | Line 139: | ||
* jména sloupců, podle kterých plugin rozeznává obsah | * jména sloupců, podle kterých plugin rozeznává obsah | ||
- | * impicitní | + | * implicitní |
* způsob zacházení s waypointy rodičovského bodu, který ještě není v databázi | * způsob zacházení s waypointy rodičovského bodu, který ještě není v databázi | ||
Line 143: | Line 152: | ||
| DEFAULT_WP_TYPE | Obsahuje předdefinovanou hodnotu typu importovaného waypointu použitou v případě, kdy typ není zadán ve vstupním souboru. Možnosti jsou '' | | DEFAULT_WP_TYPE | Obsahuje předdefinovanou hodnotu typu importovaného waypointu použitou v případě, kdy typ není zadán ve vstupním souboru. Možnosti jsou '' | ||
| DEFAULT_WP_PREFIX | Obsahuje předdefinovanou hodnotu prefixu importovaného waypointu, pokud není prefix zadán ve vstupním souboru. V každém případě se při konverzi CSV do GPX kontroluje, zda prefix je jedinečný a pokud ne, plugin se automaticky pokusí najít jedinečný prefix. | | | DEFAULT_WP_PREFIX | Obsahuje předdefinovanou hodnotu prefixu importovaného waypointu, pokud není prefix zadán ve vstupním souboru. V každém případě se při konverzi CSV do GPX kontroluje, zda prefix je jedinečný a pokud ne, plugin se automaticky pokusí najít jedinečný prefix. | | ||
- | | DEFAULT_WP_FLAG | Definuje předdefinovanou hodnotu Flagu; tj. příznaku ručně upraveného waypointu. Hodnota určuje jak bude s waypointem zacházeno při následujícím případném importu z GC.com a jak bude waypoint obsluhován filtry a exportními makry, resp. funkcí wpt.IsUserWaypoint(). Možné hodnoty jsou **0** (WP se chová jako ručně upravený uživatelem, | + | | DEFAULT_WP_FLAG | Definuje předdefinovanou hodnotu Flagu; tj. příznaku ručně upraveného waypointu. Hodnota určuje jak bude s waypointem zacházeno při následujícím případném importu z GC.com a jak bude waypoint obsluhován filtry a exportními makry, resp. funkcí wpt.IsUserWaypoint(). Možné hodnoty jsou **0** (WP se chová jako ručně upravený uživatelem, |
| WAYPOINTS_OVERWRITE | Řídí možnost přepisu existujícího WP. Pokud je ve zdrojovém souboru zadán prefix WP a v databázi již takový existuje, bude tento bod přepsán (' | | WAYPOINTS_OVERWRITE | Řídí možnost přepisu existujícího WP. Pokud je ve zdrojovém souboru zadán prefix WP a v databázi již takový existuje, bude tento bod přepsán (' | ||
| COL_* | Obsahuje čárkou oddělené texty, podle kterých plugin v prvním řádku vstupního souboru rozpoznává obsah příslušného sloupce. | | | COL_* | Obsahuje čárkou oddělené texty, podle kterých plugin v prvním řádku vstupního souboru rozpoznává obsah příslušného sloupce. | | ||
- | |||
===== Ukázky nastavení a CSV souborů pro některé případy importu ===== | ===== Ukázky nastavení a CSV souborů pro některé případy importu ===== | ||
Line 156: | Line 164: | ||
</ | </ | ||
* v konfiguračním souboru musí být nastaveno WAYPOINTS_OVERWRITE=' | * v konfiguračním souboru musí být nastaveno WAYPOINTS_OVERWRITE=' | ||
- | * v souboru musí být uveden prefix WP, jinek bude vždy vytvořen nový, protože nebude zřejmé, | + | * v souboru musí být uveden prefix WP, jinak bude vždy vytvořen nový, protože nebude zřejmé, |
==== Keše s azbukou ==== | ==== Keše s azbukou ==== | ||
Line 163: | Line 171: | ||
* spustíme '' | * spustíme '' | ||
- | :!: Pozor na nastavení souřadnic. Pokud z analýzy vyjde // | + | ===== Poznámky, známé problémy ===== |
- | + | <WRAP round important> | |
- | ===== Poznámky, známé problémy ===== | + | Prozatím není možné importovat informace, které jsou součástí keše, v případě, kdy keš je již v databázi nebo když tam sice není, ale není nastaveno její doplnění přes GPX - viz [[# |
+ | </ | ||
* plugin předpokládá správné nastavení prefixu rodičovského bodu, ke kterým mají být WP přidány. To umožňuje kromě WP ke keším (prefix '' | * plugin předpokládá správné nastavení prefixu rodičovského bodu, ke kterým mají být WP přidány. To umožňuje kromě WP ke keším (prefix '' | ||
- | |||
* pokud je z CSV importována keš, pro kterou je v souboru uveden hint, ale ne listing (krátký a dlouhý popis), GeoGet ve sloupci status stejně označí přítomnost listingu. Rozumně totiž předpokládá, | * pokud je z CSV importována keš, pro kterou je v souboru uveden hint, ale ne listing (krátký a dlouhý popis), GeoGet ve sloupci status stejně označí přítomnost listingu. Rozumně totiž předpokládá, | ||
- | |||
* keška, která už v databázi je, nebude importovaná ani v případě, že je použit // | * keška, která už v databázi je, nebude importovaná ani v případě, že je použit // | ||
- | |||
* pro případnou kontrolu zůstává zůstává na disku soubor '' | * pro případnou kontrolu zůstává zůstává na disku soubor '' | ||
- | |||
* při zapnutém přepisu WP plugin napřed zruší v databázi u příslušného WP příznak, který přepis při importu zakazuje. Pokud uživatel import přeruší aniž by k přepisu bodu došlo, příznak zákazu přepisu WP již neexistuje a bod bude přepsán i při jiném importu než tímto pluginem. | * při zapnutém přepisu WP plugin napřed zruší v databázi u příslušného WP příznak, který přepis při importu zakazuje. Pokud uživatel import přeruší aniž by k přepisu bodu došlo, příznak zákazu přepisu WP již neexistuje a bod bude přepsán i při jiném importu než tímto pluginem. | ||
- | |||
===== ToDo ===== | ===== ToDo ===== | ||
- | + | <WRAP round todo> | |
- | * možnost importovat z CSV i keše, které již v databázi jsou, je ovšem třeba se poprat s informacemi, | + | * Možnost importovat z CSV i keše, které již v databázi jsou, je ovšem třeba se poprat s informacemi, |
- | + | </ | |
- | + | ||
===== Stažení ===== | ===== Stažení ===== | ||
- | <box round 95% #DEE7EC> | + | <WRAP round download> |
- | :!: Stáhnout aktuální verzi: ~~DOWNLOAD csvuniimport-*.gip highest~~ | + | Stáhnout aktuální verzi: ~~DOWNLOAD csvuniimport-*.gip highest~~ |
- | </box> | + | </WRAP> |
==== Seznam dostupných verzí ==== | ==== Seznam dostupných verzí ==== | ||
- | /* Povinná sekce */ | ||
{{filelist> | {{filelist> | ||
- | |||
===== Seznam změn ===== | ===== Seznam změn ===== | ||
+ | ** 1.2.5 (4.2.2014) do resetu poctu staženi 29.8.2014 staženo 259 x ** | ||
+ | * oprava: při výběru souboru analýza nebrala v úvahu možnou změnu režimu " | ||
+ | * oprava: pokud není definován datum vytvoření, | ||
+ | * změna: chyba GC kódu se vypisuje jen když Parent prefix je ' | ||
+ | * změna: úprava zpracování jednotlivých sloupců, i v případě, kdy nejsou všechny sloupce v uvozovkách, | ||
+ | * změna: po výběru souboru se automaticky spustí analýza | ||
+ | * změna: prefix a typ rodičovského bodu je možné změnit ve formuláři (typ lze vybrat ze seznamu typu bodů v aktuální databázi nebo napsat nový typ, implicitně je zvolen typ definovaný v konfiguraci) | ||
+ | * změna: implicitní prefix, typ a flag waypointu je možné změnit ve formuláři (typ lze vybrat ze seznamu typů WP v aktuální databázi nebo napsat nový typ, implicitně je zvolen typ definovaný v konfiguraci) | ||
+ | * změna: import rodičovského bodu (přes API) je logicky možný jen pro keše (parent prefix GC) | ||
+ | * nový: (Arne1) doplněn sloupec pro Status s hodnotami Active, (Disabled|Disable|Inactive|Unavailable), | ||
+ | * nový: (Arne1) doplněn sloupec pro datum vytvoření rodičovského bodu (keše) | ||
- | === 1.1.3 (30.8.2012) === | + | <hidden onHidden=":!: **Zobrazit změny ve starších verzích**" |
+ | ** 1.2.4 (15.7.2013, počet stažení: 231) ** | ||
* nové: doplněna možnost přepisu existujícího WP místo přidání nového | * nové: doplněna možnost přepisu existujícího WP místo přidání nového | ||
* nové: doplněn výpis statistiky převodu CSV do GPX | * nové: doplněn výpis statistiky převodu CSV do GPX | ||
Line 209: | Line 221: | ||
* změna: k popisu přidaného bodu je doplněno jméno zdrojového souboru | * změna: k popisu přidaného bodu je doplněno jméno zdrojového souboru | ||
- | === 1.1.3 (30.8.2012, počet stažení: | + | ** 1.1.3 (30.8.2012, počet stažení: |
- oprava: úvodní ignorování implicitního INCODING | - oprava: úvodní ignorování implicitního INCODING | ||
- | - oprava: chybné zpracování prázdného textu v polozce | + | - oprava: chybné zpracování prázdného textu v položce |
- nové: testování BOM pro zjištění typu kódování při UTF-8 | - nové: testování BOM pro zjištění typu kódování při UTF-8 | ||
- nové: zpracování souboru UTF-8 s BOM (ostatní UTF zpracovat odmítne) | - nové: zpracování souboru UTF-8 s BOM (ostatní UTF zpracovat odmítne) | ||
- | === 1.0.0.2 (15.5.2012, počet stažení: 77) === | + | ** 1.0.0.2 (15.5.2012, počet stažení: 77) ** |
* oprava odinstalace pluginu | * oprava odinstalace pluginu | ||
* oprava jména instalačního adresáře | * oprava jména instalačního adresáře | ||
Line 224: | Line 236: | ||
* informace o úspěšném převodu bez chyby je zobrazena i pokud je zakázáno zobrazování zpráv úrovně INFO, ale okno s protokolem o převodu je prázdné | * informace o úspěšném převodu bez chyby je zobrazena i pokud je zakázáno zobrazování zpráv úrovně INFO, ale okno s protokolem o převodu je prázdné | ||
- | <hidden onHidden=": | + | ** 1.0.0.1 (14.5.2012 staženo 19 x) ** |
- | === 1.0.0.1 (14.5.2012 staženo 19 x) === | + | |
* generálský efekt - oprava požadované verze GeoGetu na veřejně dostupnou | * generálský efekt - oprava požadované verze GeoGetu na veřejně dostupnou | ||
* oprava zdvojeného řádku v default.pas | * oprava zdvojeného řádku v default.pas | ||
- | === 1.0.0.0 (14.5.2012) | + | ** 1.0.0.0 (14.5.2012) |
* úvodní veřejná verze | * úvodní veřejná verze | ||
- | |||
</ | </ | ||
{{tag> | {{tag> |
user/skript/csvuniimport.1373869546.txt.gz · Last modified: 2013/07/15 00:00 (external edit)