Tak je tam několik nesrovnalostí.
1. soubory nemají stejný počet řádků => Smyčka Do While - Loop musí být nastavena na soubor s menším počtem řádků (Jinak skript skončí chybou)
2. za tvých podmínek nelze řádky v jednom souboru nahradit, proto se vytvoří soubor nový.
3. zjednodušení "každý třetí řádek" u programátora neplatí. Je třeba říci, první řádek stejný, druhý řádek nahrazen, třetí řádek stejný a to až do vyčerpání řádků.
Skript vytvoří další textový soubor "C:\GO\big5_string0.txt", kam zapisuje podle pravidel bodu 3). Cesty k souborům jsou v const proměnných. Ukončení práce oznámí.
Kód okopíruj a vlož do notepadu či jiného jednoduchého textového editoru. Ulož. Změň příponu z .txt na .vbs. Spustíš jej poklepáním.
Zkontroluj výsledek zda souhlasí.
Kód: Vybrat vše
'******************************************************
'* Script slučuje dva soubory do jednoho *
'* První řádek ze souboru1 *
'* Druhý řádek ze souboru2 *
'* Třetí řádek ze souboru1 *
'* Vytvořeno pro PC-HELP *
'* Etienn@Script v. 1.0 *
'******************************************************
Option Explicit
Dim fso, Text1, Text2, txtStream0, txtStream, txtStream2
Const file1 = "C:\GO\big5_string.txt"
Const file2 = "C:\GO\big5_string2.txt"
Const fileout = "C:\GO\big5_string0.txt"
' vytvoreni objektu pro pristup k souborum
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtStream = fso.OpenTextFile(file1)
Set txtStream2 = fso.OpenTextFile(file2)
Set txtStream0 = fso.OpenTextFile(fileout, 2, True)
Do While Not (txtStream2.AtEndOfStream)
Text1 = txtStream.ReadLine
Text2 = txtStream2.ReadLine
txtStream0.WriteLine Text1
Text1 = txtStream.ReadLine
Text2 = txtStream2.ReadLine
txtStream0.WriteLine Text2
Text1 = txtStream.ReadLine
Text2 = txtStream2.ReadLine
txtStream0.WriteLine Text1
Loop
txtStream0.Close
MsgBox "Script proběhl", vbOKOnly + vbInformation, "Zpráva"
Set fso = Nothing
Druhý případ bude poněkud složitější.
Skript bude muset jít na řádek prvního souboru, pak projít celý druhý soubor, aby vyhledal Item vnum, pak pohledat text mezi uvozovkami hashname a nahradit jej a totéž mezi uvozovkami name. Pak uložit změněný řádek. To sice není nemožné (alespoň myslím), ale bude to chvíli trvat.