Autor | Zpráva | ||
---|---|---|---|
Karel.Pospisil.8 Profil |
#1 · Zasláno: 9. 10. 2012, 08:19:58 · Upravil/a: Moderátor (editace znemožněna) 9. 10. 2012, 11:07:05
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 |
#2 · Zasláno: 9. 10. 2012, 10:26:41
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 |
#3 · Zasláno: 9. 10. 2012, 23:11:22
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 |
#4 · Zasláno: 9. 10. 2012, 23:15:51
Karel.Pospisil.8:
Spouštíš to z příkazové řádky a předáváš tomu ty 3 argumenty? |
||
juriad Profil |
#5 · Zasláno: 9. 10. 2012, 23:21:52
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 |
#6 · Zasláno: 9. 10. 2012, 23:54:59 · Upravil/a: Karel.Pospisil.8
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 |
||
Časová prodleva: 12 let
|
0