Hledám program na úpravu souborů

Hledám program na úpravu souborů
« 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
« Poslední změna: 09. 10. 2012, 14:30:52 od Petr Krčmář »


Karel Bezděda

Re:Hledám Program
« Odpověď #1 kdy: 09. 10. 2012, 09:16:15 »
pyco to je sila :D

Diskobolos

Re:Hledám Program
« Odpověď #2 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)?

norwi

Re:Hledám Program
« Odpověď #3 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ě.

v2kt0r

Re:Hledám Program
« Odpověď #4 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".


KapitánRUM

Re:Hledám Program
« Odpověď #5 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
  • =koresponduje s b[y], vyplň údaje a přestaň hledat.

Ulož doplněné pole do souboru.

mikrom

Re:Hledám Program
« Odpověď #6 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
Kód: [Vybrat]
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
Kód: [Vybrat]
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
Kód: [Vybrat]
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
Kód: [Vybrat]
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
Kód: [Vybrat]
# 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
Kód: [Vybrat]
$ 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