Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Hledám CSV konvertor

Hledám nějaký CSV konvertor, který by dokázal převést *csv soubor na běžný textový podle stanovených pravidel.

Původní zdroj:

"TAG","COMMENT","ENGLISH_UK","ENGLISH_US","CZECH"
"GameTitle","","ColourBind","ColorBind","Colour Bind"
"PlayMenu","The next entries (until 'exit') are menu options","Play","Play","Hrat"

V csv editoru to vypadá takto:
[11514-csv-png]

Cílem je textový soubor, který bude splňovat:
- každá položka na samostatném řádku
- před každou položkou (také na samostatném řádku) bude název sloupečku ze záhlaví
- po vypsání všech položek v řádku bude ve výsledném souboru následovat samostatný řádek s (všude se opakujícím) předdefinovaným textem, zde "END_LOC"

TAG
GameTitle
ENGLISH_UK
ColourBind
ENGLISH_US
ColorBind
CZECH
Colour Bind
END_LOC
TAG
PlayMenu
COMMENT
The next entries (until 'exit') are menu options
ENGLISH_UK
Play
ENGLISH_US
Play
CZECH
Hrat
END_LOC

Pravděpodobně bude potřeba v rámci konvertoru vytvořit nějaký script, s tím bych se už nějak podle konkrétný syntaxe nějak popasoval.

Díky za případný tip.

Předmět Autor Datum
Je to jednorázová záležitost nebo toho budeš potřebovat převádět více? Kdyžtak bych vypotil nějaký P…
host 06.11.2012 11:32
host
Nový avatar! Budu toho převádět více. Hledám spíše hotové obecné řešení, které se dá parametricky…
L-Core 06.11.2012 11:43
L-Core
S tím php scriptem tedy raději ještě počkej. Pozdě... už to mám hotový. ;-) To by se mělo jednat o…
host 06.11.2012 11:52
host
Tož sem s tým, vyzkúšáme :-) To bych si mohl na svém (vzdáleném) ftp udělat nějakou index.html strá…
L-Core 06.11.2012 12:01
L-Core
Tak pošli nějaký CSV soubor, převedu a dám sem výsledek. Možná to bude potřeba doladit... Pokud tvů…
host 06.11.2012 12:04
host
SZ.
L-Core 06.11.2012 12:08
L-Core
Když je nevyplněná hodnota (buňka), tak by to mělo vynechat i s nadpisem? Teď to nadpis napíše a mís…
host 06.11.2012 12:12
host
Přesně takto to má vypadat, je-li hodnota buňky prázdná, má být prázdný řádek. Jdu to vyzkoušet ve h…
L-Core 06.11.2012 12:17
L-Core
Něco je špatně. Problém je v tom, že v některých řetězcích je čárka (",") a script část za čárkou po…
L-Core 06.11.2012 12:26
L-Core
Aha. Jde o to, že v CSV by měly buňky být oddělené středníkem, to je výchozí nastavení Excelu. Můžeš…
host 06.11.2012 12:33
host
Máš v SZ dvě verze, s ";" a jako html
L-Core 06.11.2012 12:42
L-Core
No, to je jiný kafe! ;-)
host 06.11.2012 12:49
host
Tohle vypadá v pořádku. Nicméně ve hře to vyzkoušet zatím nemohu, až budou hotovy všechny soubory (c…
L-Core 06.11.2012 13:45
L-Core
Místo chybějícího stringu můžu automaticky vyplnit třeba "xxx", to je to nejmenší. Jde jen o to, je…
host 06.11.2012 14:08
host
Ne, to nepomůže. Těch souborů je více, a pokud ve všech není sekce "CZECH", dává to nesmyslné texty.…
L-Core 06.11.2012 16:32
L-Core
tak dáreček, programátor v názvu souboru v první řádce vidí jednoduchou a rychlou implementaci pipe…
AZOR 06.11.2012 21:14
AZOR
Lokalizace té gamesy není zrovna user-friendly. Doufám, že překlad ještě projde nějakou gramatickou…
host 06.11.2012 22:33
host
Asi nějak ztrácím cit pro mateřštinu :-/ Zda za to může začínající hosipa, alzhajmr či pivo, nevím…… poslední
L-Core 06.11.2012 23:20
L-Core
Nechci zase prosazovat svého chlebodárce, ale co Oracle? ;) CSV lze přimoutovat jako tabulku a selec…
AZOR 06.11.2012 12:38
AZOR
Excel (97) jsem zkoušel, ale neporadí si plně s importem. Uvnitř csv souborů jsou totiž i ";" a ",",…
L-Core 06.11.2012 12:51
L-Core
Uvnitř csv souborů jsou totiž i ";" a ",", které ne vždy znamenají oddělovač... To je černá můra al…
Flash_Gordon 06.11.2012 14:08
Flash_Gordon
To co požaduješ vypadá totiž dost těžko možně. Možné to je, jen pracnější. Vidím v podstatě dvě ře…
host 06.11.2012 14:13
host
Ne, uvozovky nejsou nikde, Respektive jsou, ale symbolizovány znakem '. Zmacknete 'esc'
L-Core 06.11.2012 16:35
L-Core
to nemusi byt cyklust, to staci, byt regulerni vyrat, tusim ze I php ma neco jako split_by_reguar_ex…
AZOR 06.11.2012 21:12
AZOR
Já jsem konzerva(-tivní), proto raději používám cykly - zdají se mi přehlednější a jednodušší na cus…
host 06.11.2012 22:30
host

Nový avatar!

Budu toho převádět více.

Hledám spíše hotové obecné řešení, které se dá parametricky customizovat (kua, to je teda termín :-*) podle konkrétních požadavků.

S tím php scriptem tedy raději ještě počkej. To by se mělo jednat o script do něčeho konkrétního? Do čeho?

S tím php scriptem tedy raději ještě počkej.

Pozdě... už to mám hotový. ;-)

To by se mělo jednat o script do něčeho konkrétního? Do čeho?

Je to PHP skript, tedy buď ho spustit někde na webu (Webzdarma a podobně) nebo u sebe v počítači na localhostu (třeba WAMP).

Tak pošli nějaký CSV soubor, převedu a dám sem výsledek. Možná to bude potřeba doladit...

Pokud tvůj hosting podporuje PHP (takových je většina), tak si stačí udělat stránku index.php, vložit ten kód a do stejného adresáře nahrát i zdrojový CSV soubor.

Něco je špatně. Problém je v tom, že v některých řetězcích je čárka (",") a script část za čárkou posune do další buňky (viz hned druhý řádek). Proto je zdrojový csv vytvořen tak, že veškeré stringy jsou v úvozovkách, což umožňuje i čárky ve větách uvnitř.

Ne, to nepomůže. Těch souborů je více, a pokud ve všech není sekce "CZECH", dává to nesmyslné texty. Navíc existuje jakýsi hlavní language.txt soubor, který určuje pořadí jazyků v těch lokalizačních souborech. Některé *csv mají jen 2x angličtinu (US/UK) + češtinu, jiné i další jazyky (DE, ESP, FR..). Takto jsem je dostal od vývojářů a musím se s tím nějak vypořádat (přidám chybějící jazyky bez stringů, přeskládám "vnitřek" csv). Do toho se ale pustím, až budu mít přeloženo vše (mám odhadem 75-80%).

Jeden csv je taky pěkný dáreček. První sloupec je jméno souboru, do kterého se mají stringy (za podobných pravidel jako ty ostatní) zkonvertovat. Takže místo jednoho vznikne asi 30 souborů. Tohle moc chytře devs nevymysleli; jakoby nešlo úplně všechny řetězce narvat jen do jednoho souboru :-/

[11520-csv-png]

---
Štve mě i nemožnost použití diakritiky (použité fonty to neumožní a jejich výměna za jiný nepomůže, část ASCII tabulky je ve hře zablokována). Druhotným důsledkem toho je, že když teď musím překládat bez diakritiky, pletu se i jinde 3-[

tak dáreček, programátor v názvu souboru v první řádce vidí jednoduchou a rychlou implementaci pipe v shellu, ze - pro nej to takhle treba dva smysl.

Lokalizace té gamesy není zrovna user-friendly.

Doufám, že překlad ještě projde nějakou gramatickou korekturou... ;-)

Pouze jen jeden z vas muze dosahnout cile

Nestačilo by

Pouze jeden z vas muze dosahnout cile

Zdá se mi to významově stejné, mluvnicky o 100% lepší....

Asi nějak ztrácím cit pro mateřštinu :-/ Zda za to může začínající hosipa, alzhajmr či pivo, nevím…

Ale opravdu mi (v kontextu hry) ta první formulace nepřijde nekorektní, protože podle mě lépe zdůrazňuje tu vylučovací možnost postupu v kooperativním levelu - jeden hráč se musí opravdu obětovat, aby bylo dosaženo (společného) cíle. Není problém to opravit/změnit.

Překlad byl pro mě o to horší/složitější, že v samotné hře jsem postoupil jen velmi mírně; hraní není to žádná legrace, některé postupy jsou opravdu only for hardcore players ;-) Obecné principy sice znám, ale konkrétnosti mnoha úrovní mi jsou doposud utajeny.

Ingame komentáře autora v posledním levelu singlplayeru:

People have always said ColourBind is too difficult...
...and I really didn't try very hard to fix that.
And yet, you've overcome it.
Fifty levels.
Some of them, frankly, pretty unfair.
But with skill, wits, persistence...
...and perhaps a certain zen calm...
You've reached the end.
If you want to stop now, I won't blame you.
Most people have already given up, after all.
But perhaps you want... more.
This doesn't have to be the end.

Za sebe mohu říci, že už desátá úroveň je dostatečně šílená. Padesátou si nedovedu představit… Každopádně hra je to báječná a fanouškům nápaditých indie her ji mohu jen doporučit.

Občas je nutno v překladu dost improvizovat, aby to dávalo v češtině smysl. Například o "zen calm" jsem dlouho přemýšlel, až jsem použil (snad přijatelné) "vyšší mocnosti".

Nechci zase prosazovat svého chlebodárce, ale co Oracle? ;) CSV lze přimoutovat jako tabulku a selectem si pak udělat co budeš potřebovata a vylejt to do souboru. (nemusi to byt nezbytně nutně oracle, jen nevim jestli to mysql a jine umi) Problem vidim v tom, ze chces doslova script/customizaci, ooz znamena ze nekdo se tvourbou kovnertoru musel mit presne stejny napad, jako chceš Ty a nebo udělat něco obecného - a to už je na vlastní scriptovací jazyk a pocyhbuju, ze se s tim nekdo patlal

Jinak CSV je execel ne? Roztahnu si budnku jako vzorec, a mactro/ctrl+c/v a pak to ulozim jako soubor, ne? Alternativne msaccess, jestli umi primountovat CSV.

Excel (97) jsem zkoušel, ale neporadí si plně s importem. Uvnitř csv souborů jsou totiž i ";" a ",", které ne vždy znamenají oddělovač, ale jsou součástí textu (stringů).

Jiné csv zase vyžadují jiné pořadí ve výsledném souboru a proto ten požadavek na customizaci scriptů. S tím bych si už (snad!) podle nějakého vzoru poradil.

Uvnitř csv souborů jsou totiž i ";" a ",", které ne vždy znamenají oddělovač...

To je černá můra algoritmizace.
Taky jsem se setkával při převodu dokumentů oddělených středníkem, kdy v řetězci byl středník.

Člověku je po nahlédnutí do takto chybného řetězce rychle jasné, kam co patří.
Ovšem při algoritmizaci bychom museli pracovat nejspíše s lexikální analýzou.

Já jsem to "řešil" tak, že jsem dokument otevřel a popravoval to ručně.

To co požaduješ vypadá totiž dost těžko možně.

To co požaduješ vypadá totiž dost těžko možně.

Možné to je, jen pracnější.

Vidím v podstatě dvě řešení:
1) vybrat takový oddělovač, který se v textu neobjeví. Středníky a čárky jsou profláklé, mým oblíbeným je svislítko "|".

2) přeprogramovat cyklus, aby bral v potaz nejenom oddělovač, ale také obsah mezi uvozovkami jako celek. Snad nebudou uvozovky i v některém řetězci... :x:

to nemusi byt cyklust, to staci, byt regulerni vyrat, tusim ze I php ma neco jako split_by_reguar_exprsion.. a dokonce jsem uz i takove funkce/vyrazy pro CSV viděl na netu hotove.

Zpět do poradny Odpovědět na původní otázku Nahoru