Re: Importer/Remplacer des entrées *.ini

Publié par Constance le 27/07/2018 07:08:35
Salut .o/

J'ai une solution, je pense, en tout cas ça a fonctionné avec les exemples fournis et j'ai obtenu un résultat conforme à ce que tu indiques.

Il y a quelques étapes préparatoires par contre, notamment trouver un caractère qui n'existe pas dans les fichiers d'origine.

J'ai choisi le caractère "*"

D'abord, j'ai sauvegardé :
- le contenu de ton premier bloc sous le nom "vf_1.txt"
- le contenu du second bloc sous le nom "vo_x.txt"

Ensuite, avec Notepad2, j'ai fait un rechercher/remplacer, avec l'option "Transform Backslashes" activée, de "]\r\nPocket", par "]*Pocket"

et sauvegardé les deux fichiers, de sorte à ce que toutes les lignes contenant du texte se présentent sous la forme :
[nom de l'objet]*PocketFriendlyName=nom affiché

J'ai donc dans vf_1.txt :

[Pocket_PrimaryWeapon]*PocketFriendlyName=Arme principale

[Pocket_PrimaryAmmo]*PocketFriendlyName=Munitions principales

[Pocket_SecondaryWeapon]*PocketFriendlyName=Munitions de réserve


et dans vo_x.txt :
[Pocket_PrimaryWeapon]*PocketFriendlyName=Main Weapon

[Pocket_PrimaryAmmo]*PocketFriendlyName=Main Ammo

[Pocket_SpecialAmmo]*PocketFriendlyName=Special Ammo

[Pocket_SecondaryWeapon]*PocketFriendlyName=Secondary Ammo


Puis, j'ai écrit puis exécuté ce script batch :
SET BaseFile=vf_1.txt
SET ExpansionFile
=vo_x.txt
SET NewVF
=vf_x.txt
IF EXIST %NewVFDEL %NewVF%

for /
"tokens=1,2 delims==" %%a in (%ExpansionFile%) do (
    
FIND "%%a=" %BaseFile% >NUL
    
IF NOT ERRORLEVEL 1 (
            
REM chaîne trouvée dans le fichier VF de baseon la recopie telle quelle
            
FOR /"tokens=1,2 delims==" %%C in ('FINDSTR /C:"%%a=" %BaseFile%') DO ECHO %%C=%%D>>%NewVF%
        ) ELSE (
            
REM chaîne non trouvéeon garde celle du fichier de l'extension
            ECHO %%a=%%b>>%NewVF%
    )
)


Ce qui m'a donné un fichier vf_x.txt contenant :

[Pocket_PrimaryWeapon]*PocketFriendlyName=Arme principale
[Pocket_PrimaryAmmo]*PocketFriendlyName=Munitions principales
[Pocket_SpecialAmmo]*PocketFriendlyName=Special Ammo
[Pocket_SecondaryWeapon]*PocketFriendlyName=Munitions de réserve


Je l'ai alors ouvert dans Notepad2, puis ai effectué les deux "rechercher/remplacer" suivants, toujours avec l'option "Transform backslashes" activée :

- d'abord remplacer "\r\n" par "\r\n\r\n»
- puis remplacer "*" par "\r\n"

Edit : d'ailleurs on doit pouvoir se passer du "caractère unique" en fait, et se débrouiller en recherchant/remplaçant juste les "]"…

Cette contribution était de : http://www.gratilog.net/xoops/newbb/viewtopic.php?forum=1&topic_id=15381&post_id=188382