Existe-t-il un outil pour comparer les valeurs dans les fichiers .ini? [fermé]


10

Je recherche un utilitaire de comparaison de fichiers spécifiquement pour les fichiers .ini, généralement utilisé comme fichiers de paramètres.

Il existe de nombreux outils de comparaison de fichiers (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), mais aucun des outils que j'ai essayés ne peut très bien gérer les fichiers .ini.

Un fichier .ini typique pourrait ressembler à ceci:

[Settings]
Setting1=abc
Setting2=xyz

L'outil doit correspondre aux lignes basées sur la chaîne avant le signe égal, puis afficher les différences dans tout le reste après le signe égal. L'ordre des lignes dans une section (les sections sont indiquées entre crochets) n'a pas d'importance et doit être ignoré.

Je ne trouve aucun outil capable de gérer cela. En règle générale, les outils existants affichent des différences au début de la ligne avant le signe égal (si la plupart du texte après le signe égal correspond), ils auront du mal à réorganiser les lignes (soit afficher tout comme modifié ou correspondre à certaines lignes et afficher le reste étant supprimé à un endroit puis ajouté à un autre). J'ai même trouvé des outils où la correspondance du texte peut être restreinte, par exemple en utilisant des expressions régulières, mais celles-ci ignorent simplement le reste de la ligne et je ne peux pas faire correspondre les lignes sur la base d'un modèle (c'est-à-dire tout avant le signe égal), puis les comparer en fonction sur un autre (tout après le signe égal).


Maintenant que j'ai lu votre question, je ne comprends vraiment pas ce que vous voulez ... peut-être pouvez-vous montrer ce que vous VOULEZ aussi bien que ce que vous avez. les expressions rationnelles et les différences devraient être capables de gérer ce que vous voulez faire.
Joseph Kern

Vous devez renommer votre message .... Existe-t-il un outil pour comparer les valeurs des fichiers .ini?
Joseph Kern


Merci Joseph, bon point, j'ai édité le titre. splattne - initools sonne comme si ce serait parfait, dommage que j'utilise Windows.
ssollinger

Réponses:


6

Beyond Compare a une règle INI triée que vous pouvez télécharger .


1
Fantastique, c'est exactement ce que je cherchais. J'ai examiné brièvement Beyond Compare avant, mais je n'ai pas remarqué la règle triée ini. Si quelqu'un est intéressé, le lien dans votre réponse est pour Beyond Compare 2. La "règle ini triée" pour Beyond Compare 3 est disponible ici: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger

Le lien du premier commentaire ne fonctionne pas - 404. Il existe une autre page en BC4 uniquement - scootersoftware.com/download.php?zz=kb_moreformatsv4
pl71


2

Je viens souvent de trier les fichiers avant de comparer. Cela n'aidera pas si vous avez quelque chose comme

[foo]
bar1=xyz
bar2=abc
[foo2]
bar1=lky

mais en supposant que vos clés sont uniques (et peuvent donc être associées à une section), cela fonctionne souvent à la rigueur.


Cela aide parfois, mais comme vous l'avez dit, cela ne fonctionne pas s'il y a plusieurs sections, il échoue également souvent s'il manque plusieurs lignes dans l'un des fichiers (la plupart des outils commencent alors à essayer de faire correspondre les mauvaises lignes).
ssollinger

vrai; Je ne le recommande pas comme un idéal, mais à la rigueur, cela peut souvent aider
Mikeage

2

Essayez vimdiff. Voici un exemple avec des fichiers .ini.


MES YEUX! .Xdefaults! Changez-les!
Joseph Kern

1
Oui, c'est très moche, désolé. Mais je ne pense pas que cela n'ait rien à voir avec .Xdefaults car c'est une console. Je vais regarder dans la documentation de vim pour changer ces couleurs :).
chmeee

1
au cas où quelqu'un d'autre serait intéressé - vimdiff est disponible via vim.org. VimDiff est ok, mais il échoue lorsque les lignes sont permutées et que la valeur est une correspondance plus étroite que la chaîne avant le signe égal. Dans ce cas, VimDiff montrera la différence dans la partie avant le signe égal, ce qui n'est pas ce que je veux.
ssollinger


0

J'ai toujours aimé Winmerge, très personnalisable.


WinMerge est génial mais ne gère pas très bien les fichiers de paramètres (fichiers .ini). C'est mieux que d'autres (comme WinDiff), mais ma question était pour un outil qui compare spécifiquement les valeurs dans les fichiers .ini. WinMerge ne peut pas faire cela.
ssollinger

1
Winmerge a un paramètre pour comparer les blocs de texte qui ont été déplacés et qui sont similaires. Je l'utilise pour comparer les fichiers web.config, mais je suppose qu'ils sont un peu plus organisés que les fichiers ini.
Dave

J'utilise WinMerge et fais une substitution d'expression régulière sur chaque fichier pour supprimer les nombres avant de comparer ( [0-9]+=à =). Mais je dois toujours jeter les fichiers modifiés. Je recherche également une meilleure solution.
djeidot
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.