Pspad neumím sesmolit regulérní výraz -jde to ?
Mám asi 1500 konfiguračních souborů workshopconfig.ini s řetězcem $OWNER_ID s různým identifikátorem -různě dlouhé číslo,různí autoři potřebuji to přeplácnout svým kratším
například $OWNER_ID 10453789. Nejsem schopný udělat regulérní výraz aby našel a změnil to číslo. Zkoušel jsem $OWNER_ID \d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d (různý počet \d) ale nefunguje. Evidentně mám mezery.
Příklad workshopconfig.ini
$ITEM_ID 1803371248
$OWNER_ID 76561197992713857
$ITEM_TYPE WORKSHOP_ITEMTYPE_VEHICLESKIN
$VISIBILITY 2
$TARGET_OBJECT_SKIN personal_s1000 material.mtl
$ITEM_NAME "Skoda 1000 MB - Deep Blue"
$ITEM_DESC "A new victim emerges from the paintshop: the Skoda S1000! This one is wearing the downright lovely deep blue as seen on the museum car that pops up if you google the S1000."
$END
Změna předmětu, původně: Pspad -jde to ? (aa)
Poznámka - jde o legálně koupenou hru a potřebuji u stáhlých vylepšení změnit autora abych je mohl překopírovat do jiné složky hry. Tím je budu mít napořád stejné. Mody natáhnuté přes "odběr" občas autor smaže nebo upraví tím mi naruší hru (zmizí budovy např).
\$OWNER_ID \d+
nahradit za
$OWNER_ID 1234567890
Dolar se musí escapovat, protože je to řídicí znak "konec výrazu".
Ahoj díky za snahu. Zatím se nedaří.
Zkusil jsem cvičně udělat soubor s $OWNER_ID 765 a hledat jen NER_ID a číslo. Pokud zkusím \d+ nebo \d\d\d tak to soubor nenajde
,
pokud tam nacpu 765 tak to soubor najde.
Ty robíš find in files, a ja tam nikde nevidím možnosť zvoliť regexp. Skús len obyčajný find/replace priamo v otvorenom súbore.
Alebo vyskúšaj notepad++
Aha. Tak tam to funguje
Časem to bude i v hledání v souborech. Už se na to psychicky připravuju.
Aha díky Honzo
takže s pspadem to nějak jednoduše neudělám. Nebo jde udělat seznam souborů a pak je automaticky změnit ?
Jediné, jak by to šlo teď je složitější. Šel by použít uživatelský konvertor s regulárními výrazy a ten pak použít na všechny otevřené soubory.
Já bych věděl, jak na to v Matlabu (v cyklu pro všechny soubory tuto změnu dělat, byl by to skript nebo funkce na pár řádků, přičemž kostru na hledání souborů a cyklus nad nimi mám hotové pro spoustu jiných účelů, hledání regulárních výrazů umí (to používám běžně), takže i kdyby se mělo to nahrazení nějak dodělat, nebude to složité). Ale matlab předpokládám nemáte.
Není problém to napsat ve skriptování (VBScript nebo JScript přímo v PSpadu) včetně přepsání s regulárními výrazy a pustit na všechny otevřené soubory, je to taky skript na pár řádků, včetně zadání toho nahrazovaného výrazu.
Ale netuším, jestli to Karel používá častěji nebo jestli je to jednorázovka.
PSpad umí otevřít soubory pomocí wildcard, takže když dostane jako parametr c:\slozka\*.php tak otevře najednou všechny PHP ve složce.
Děkuji všem za snahu pomoct.
Nakonec jsem pro zjednodušení použil "jednosouborový" jednoúčelový program Find and Replace (FNR). Kdyby těch souborů bylo 100 udělám to ručně v Pspadu.
http://findandreplace.io/download
Nepomůže přesunutí těch souborů z workšopu jinam? Také to tak u pár steamáckých her dělám (stáhnu, překopíruju jinam a klidně se odhlásím z odběru) - třeba u Cities Skylines či Haydee. S úpravou configů jsem se nikdy nepáral - ale třeba to tak u té tvé hry nejde…