Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Záměna konkrétní části textu ve dvou souborech

Dobrý den, potřebuju poradit, mám dva textové soubory a potřebuju u jednoho z nich, který je obsáhlejší, zaměnit material ID z textového souboru, který je menší, ale zato má správné materiál ID, které právě potřebuju převést.

Potřebuji program, který by udělal toto: našel v obou souborech stejné "N:" ve formátu (viz obrázek) "xxxxx.BMP" a zkopíroval material ID, které je o řádek výš nad N: "xxxxx.BMP" a zaměnil ho v druhém souboru.

Takhle vypadá jedna sekce:

Material: 0x276bcdd4f9f458c6
N: "5VYLOHA3.BMP"
A: 128
A: 0
H: 0x00601000
P: 0
D: 0
G: 0
S: 0x43ed7e721ef27b4b
U: 0xc9fb8714
Parameter: 0
Sampler: 1
C: "S000"
U: 0 0
S: 02000202010000000000000000000000
T: "5vyloha3.dds"

Děkuji

Předmět Autor Datum
awk edit: ale to imho nedáš. :-p edit2: abys neřekl, tak tady máš nápovědu od přítele z poradny: ht…
touchwood 10.01.2020 18:05
touchwood
Nepoznám iné programovacie jazyky, než VBA, ale to mi na túto úlohu úplne stačí - Excel má na toto p…
robert13 10.01.2020 18:49
robert13
možná replacetxt: https://www.cylog.org/tools/cmdline.jsp poslední
lední brtník 11.01.2020 00:31
lední brtník

Nepoznám iné programovacie jazyky, než VBA, ale to mi na túto úlohu úplne stačí - Excel má na toto potenciál...
Je to možno škrabanie sa za ľavým uchom pravou rukou, ale ak to splní cieľ a som schopný to urobiť, čo mi bráni si takto pomôcť?
Makro bude možno skôr hotové ako nájdenie a úprava existujúceho programu...
Otvoril by som si oba súbory v Exceli, pričom by som prostredníctvom užívateľského dialógu pre import textu použil ako oddeľovač dvojbodku.
Jeden súbor by som dal do jedného hárka, druhý súbor do druhého hárka.
K tomu spomínané makro, ktoré vyhľadá a doplní to, čo potrebuješ (nie je problém) a na záver by oddelené stĺpce spojilo do jedného s doplnením dvojbodky a uložilo ako txt.
Ak nenájdeš iné riešenie, môžem touto formou pomôcť, ale k vytvoreniu makra by boli potrebné ďalšie doplňujúce informácie, napr. či štruktúra je u všetkých položiek rovnaká (pre použitie kroku v cykle) a pod.
Prípadne ak ovládaš makrá v Exceli, možno už táto nápoveda Ti postačí k tomu, že si to urobíš sám.
A keď sa na to tak lepšie pozerám, tak za podmienky jednoznačného priradenia ID k N, by nebolo potrebné ani makro - postačili by 2 vzorce.
Jeden z nich by v prvom hárku prenášal ID materiálu za hodnotu N. Druhý by prostredníctvom funkcie VLOOKUP v druhom hárku vyhľadal hodnotu N v prvom hárku a vrátil by ID materiálu získaného prvým vzorcom do bunky za hodnotu pôvodného ID v druhom hárku. Pár manuálnych krokov (filter, kópia, zlúčenie dvoch stĺpcov funkciou CONCATENATE s pridaním dvojbodky a prekopírovanie stĺpca svojimi vlastnými hodnotami, výmaz všetkých zbytočných stĺpcov a uloženie ako txt) a hotovo...

Zpět do poradny Odpovědět na původní otázku Nahoru