Doplním, že jsem se jistou dobu snažil v parseru používat regulérní výrazy, ale pokaždé se objevil větší špek
přesně ve stylu "Pepa vymyslel zcela blbuvzdornou věc a bůh mu dokázal, že umí udělat ještě většího blba." Od té doby mám parser udělaný tak, že kontroluji výstup, kde provádím čištění, aby se do parseru opravdu nikdy nedostalo nic, co by se mu nemuselo líbit. Pokud to máš tak udělané, můžeš to parsovat jen v Bash. Pokud máš eshop (my děláme Magento), tak je nejlepší to udělat pořádně, nejlépe neexportovat do CSV, ale do XML.
Jinak často stačí i jen jednoduchá úprava parseru, kdy se jako delimiter (oddělovač) použije středník ;
Bez středníku se hromada lidí prostě obejde, můžeš řádek testovat na počet středníků.
Například mějme řádek:
podprda;červená;c;500;605
A teď vývojový diagram:
A) provedeš otestování, kolik středníků je v řádku, pokud jich je víc než 4, pošleš výstup do LOG.TXT a přeskočíš záznam
B) pokud záznam není přeskočený, provedeš import
C) po dokončení importu zjistíš, jestli existuje LOG.TXT, tj. jestli se vůbec vytvořil, pokud ano, pošleš si ho mailem a smažeš ho
Tohle je poměrně použitelný způsob zpracování.
Splňuje to požadavky na stabilitu, tedy do DB se nikdy nesmí dostat svinstvo.
Splňuje to požadavek na upozornění, kdy ti přijde mail a ty ho můžeš předat dál, tj. neztrácíš chybu.
Splňuje to požadavek na jednoduchost, čím je řešení složitější, tím je v něm víc chyb a tedy nesplňuje požadavek na stabilitu, protože nezajistí, že se do DB nedostane svinstvo.
No dělej si s tím co chceš.