Fórum Root.cz

Hlavní témata => Software => Téma založeno: MireceX kdy 09. 10. 2012, 08:29:39

Název: Hledám program na úpravu souborů
Přispěvatel: MireceX kdy 09. 10. 2012, 08:29:39
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
Název: Re:Hledám Program
Přispěvatel: Karel Bezděda kdy 09. 10. 2012, 09:16:15
pyco to je sila :D
Název: Re:Hledám Program
Přispěvatel: Diskobolos kdy 09. 10. 2012, 09:19:09
Není  ;D

Je to tak, že z OLD chceš zachovat pořadí a formát indexu a z NEW pouze hodnoty (+validace formátu indexu)?
Název: Re:Hledám Program
Přispěvatel: norwi kdy 09. 10. 2012, 09:56:00
Ja bych to rešil dotazem v SQL nebo VBA scriptem v excelu.

Kombinací několika programu třeba porovnávaní v Total Commanderu, excelu a spousty ruční práce toho dosahneš také.

Otazkou je kolik indexu potřebuješ takhle měnit, pokud je jich méně než 10 tak to udělej ručně.
Název: Re:Hledám Program
Přispěvatel: v2kt0r kdy 09. 10. 2012, 10:23:50
Pokud je rucni reseni mozne, muzes take vzit zkusebni verzi "Beyond Compare", to je porovnavaci program, ktery umoznuje i editaci souboru na obou stranach a kopirovani bloku z jedne strany na druhou. V tom si otevres oba soubory a jasne uvidis, ktere radky jsou na stejne pozici a jen zmeneny a ktere se vyskytuji jen na jedne strane.

JInak doporucuji investovat trosku vic snahy pri pokladani dotazu - vcetne veci jako "prectavovat si".
Název: Re:Hledám Program
Přispěvatel: KapitánRUM kdy 09. 10. 2012, 10:27:16
To je úkol ze stření školy na páteční odpoledne ;D

V krocích: Otevři soubor B pro čtení, soubor A pro čtení, soubor C pro zápis.
Vytvoř pole a,b [];
For x=0 to B.length,x++
For y=0 to A.length, y++
pokud hledaný řetězec a
Název: Re:Hledám Program
Přispěvatel: mikrom kdy 09. 10. 2012, 11:00:59
Tie subory druhykrat publikuj radsej v textovej forme - je otrocke vytvarat subor podla obrazku

Na take veci je najlepsie pouzit AWK.
mame teda subor Main.txt

TEST1=0
TEST2=(A=-0,B=-0)
TEST3=0x000000
TEST4=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST5=0.0


a 3 dalsie subory:
ABC1.txt

TEST1=0
TEST2=(A=-0,B=-0)
TEST3=0x000000
TEST4=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST5=0.0

ABC2.txt

TEST1=0
TEST3=0x000000
TEST5=0.0
TEST4=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST2=(A=-0,B=-0)

ABC3.txt

TEST1=0
TEST2=(A=-0,B=-0)
TEST3=0x000000
TEST4X=(A=0,B=0,CC=0,DD=0,VV=0,RRRR=0.0)
TEST5X=0.0


k tomu tento awk-skript

# Run:
# awk -f OKTeA.awk Main.txt ABC.txt
BEGIN {
  FS = "=="
}
{
  if (FILENAME == ARGV[1]) {
    # mark values from file Main.txt into array
    sub(/=/,"==",$0) # replace first '=' with '=='
    gsub(/"/,"",$0)  # sweep out all '"'
    test_array[$1] = $2
    #print $1 "--> " test_array[$1]
  }
  if (FILENAME == ARGV[2]) {
    # print adequate lines from file ABC.txt
    sub(/=/,"==", $0) # replace first '=' with '=='
    if (test_array[$1]) {
      print $1 "=" test_array[$1]
    }
  }   
}


Ked to spusts dostanes co si chcel

$ awk -f OKTeA.awk Main.txt ABC1.txt
TEST1=1
TEST2=(A=-1,B=-1)
TEST3=1x111111
TEST4=(A=1,B=1,CC=1,DD=1,VV=1,RRRR=1.1)
TEST5=1.1

$ awk -f OKTeA.awk Main.txt ABC2.txt
TEST1=1
TEST3=1x111111
TEST5=1.1
TEST4=(A=1,B=1,CC=1,DD=1,VV=1,RRRR=1.1)
TEST2=(A=-1,B=-1)

$ awk -f OKTeA.awk Main.txt ABC3.txt
TEST1=1
TEST2=(A=-1,B=-1)
TEST3=1x111111