Autor Zpráva
Karel.Pospisil.8
Profil
Dobry den

Tento problem resim uz dva mesice a beznadejne
Nenasel jsem zadny program ktery by to umel a neumim skriptovat dobre abych neco vytvoril v autohotkey nebo VBS

Potrebuji upravit udaje v txt souboru
Mam dva soubory v txt v jednom jsou udaje ktere chci aby se okopirovali do druheho txt souboru
Problem je ten ze druhy txt soubor muze byt upraven...

Vytvoril jsem narychlo obrazek popisujici jak si program prectavuji nebo skript

http://i.imgur.com/OKTeA.png

Kazdy radek ma nazev a hodnoty

Mezi znaky """""TEST""""" je to co ma program nebo script vyhledat

Jestli zna nekdo program nebo nejaky skript budu rad kdyz napise dekuji


Moderátor Joker: Titulek „Hledám program“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
juriad
Profil
napsal jsem jednoduchý perlový skript, který snad dělá to, co čekáš

https://gist.github.com/3857329

skript očekává 3 argumenty na příkazové řádce (main, old, new)
to jak spustíš perl na svém počítači si někde najdi
Karel.Pospisil.8
Profil
Velice dekuji za odpoved

Skript jsem spustil ale jen problikne perl jsem nainstaloval...

Asi to spoustim spatne muzete me poradit ? jinak jeste jednou dekuji
Jan Tvrdík
Profil
Karel.Pospisil.8:
Spouštíš to z příkazové řádky a předáváš tomu ty 3 argumenty?
juriad
Profil
nejlépe skript nakopíruj do složky, kde máš ty soubory main.txt a old.txt (na jejich pojmenování nesejde)

pak v příkazovém řádku přejdi do příslušné složky (příkaz cd následovaný cestou)
tam budeš asi chtít spustit něco jako:
perl copy.pl main.txt old.txt new.txt
Karel.Pospisil.8
Profil
Velice se omlouvam opravdu vtom nejsem dobry a vazim si vasi pomoci

Bohuzel se jedna o to ze v txt souboru muze byt 1000 radku a kdyz jsem to spustil tak se me to ptalo na kazdy radek zvlast

A asi neco delam spatne protoze me skript jenom vse kopiruje akorat pridava prazdne radky ve kterych je = tento znak



Jestli by jste byl jesta tak hodny a pridal tam neco jako ze kdyz se ty soubory main.txt a old.txt budou lisit aby se me to zeptalo jestli vse co se schoduje se prepise kazdy radek na nove hodnoty a to co se nejak lisi aby se prave zapsalo do error.txt jak jsem to mel v obrazku


Ale prave nevim jestli to vubec jde jestli ten skript to vse projede a rekne vsechny hodnoty jsou stejne a nebo to zacne vse automaticky prepisovat az najede na nejakou chybu... Lepsi by bylo ale kdyby ten skript porovnal vsechny hodnoty jestli jsou stejne stema hodnotama co najde v main.txt protoze old.txt muzou byt hodnoty ktere nepotrebuji zmenit


Jestli mate cas a chut mohl bych vam za to dat nejakou malou financni castku protoze si opravdu vazim vasi pomoci


Nebo ze by jste me dal na sebe kontakt treba na icw a nejak se domluvime :-)
juriad
Profil
určitě, komunikuji ale spíše jen po mailu: juriad (zavináč) gmail.com

Asi se trochu lišíme v popisu problému, teď ho chápu takto:
Jsou dva vstupní soubory: main.txt a old.txt a jeden až dva výstupní soubory new.txt, případně ještě error.txt
Soubor main.txt obsahuje změny, které se mají aplikovat na old.txt a výsledek se uloží do new.txt

formát souboru main.txt:
- každý řádek obsahuje
- pět uvozovek, název, pět uvozovek, rovná se, hodnota
formát old.txt je podobný:
- název, rovná se, hodnota
formát new.txt je stejný jako formát old.txt
formát error.txt je volný
(název neobsahuje rovná se a uvozovky)

program zapíše do new.txt každý řádek z old.txt v pořadí převzaném z old.txt
- pokud existuje stejný název v main.txt, tak hodnotu převezme z řádku v main.txt
- jinak si zachová původní hodnotu z old.txt
program si přečte celý soubor old.txt a až následně začne zapisovat do new.txt; new.txt může být shodný s old.txt
program zapíše chyby do error.txt (ve volném formátu) pokud jsou; oznámí jejich počet a pokud je nenulový, čeká na potvrzení uložení
program se při výskytu první chyby zeptá, zda má pokračovat, nebo ukončit se

co když:
- v main.txt bude klíč, který se nevyskytuje v old.txt? (zapsat také do new.txt??, je nutné zachovat pořadí??)
- formát řádku v main.txt bude chybný? (jen error a dále ignorovat řádek??)
- formát řádku v old.txt bude chybný? (jen error a dále ignorovat řádek??)
- v main.txt se opakuje řádek? (uvažovat jen pozdější hodnotu??)
- v old.txt se opakuje řádek? (zpracovat oba řádky stejně??)
(v uvozovkách jsou přirozená řešení)

pokud nemáš problém psát s diakritikou, tak se o to zde snaž

upravil jsem skript, je dostupný tamtéž, nově vyžaduje 4 argumenty
implementace otázek "co když":
- v main.txt bude klíč, který se nevyskytuje v old.txt?
- -> zeptá se na konci, jestli připsat na konec souboru
- formát řádku v main.txt bude chybný?
- -> řádek ignoruje a hlásí chybu
- formát řádku v old.txt bude chybný?
- -> řádek ignoruje a hlásí chybu
- v main.txt se opakuje řádek?
- -> druhý řádek ignoruje a hlásí chybu
- v old.txt se opakuje řádek?
- -> druhý řádek ignoruje a hlásí chybu

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: