Existe uma ferramenta para comparar valores em arquivos .ini? [fechadas]

10

Estou procurando um utilitário de comparação de arquivos especificamente para arquivos .ini, normalmente usado como arquivos de configurações.

Existem muitas ferramentas de comparação de arquivos (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), mas nenhuma das ferramentas que tentei consegue lidar com arquivos .ini muito bem.

Um arquivo .ini típico pode ter esta aparência:

[Settings]
Setting1=abc
Setting2=xyz

A ferramenta deve corresponder às linhas baseadas na string antes do sinal de igual e, em seguida, mostrar diferenças em tudo o resto após o sinal de igual. A ordem das linhas dentro de uma seção (as seções são indicadas por colchetes) não importa e deve ser ignorada.

Não consigo encontrar nenhuma ferramenta que possa lidar com isso. Geralmente, as ferramentas existentes mostram diferenças no início da linha antes do sinal de igual (se a maioria do texto após o sinal de igual corresponder), elas terão dificuldades com as linhas reordenadas (mostrar tudo como alterado ou corresponder a algumas linhas e mostrar o restante é excluído em um local e adicionado em outro). Até encontrei algumas ferramentas em que o texto correspondente pode ser restrito, por exemplo, usando expressões regulares, mas elas simplesmente ignoram o restante da linha e não consigo combinar as linhas com base em um padrão (ou seja, tudo antes do sinal de igual) e depois compará-las com base em outro (tudo depois do sinal de igual).

ssollinger
fonte
Agora que li sua pergunta, realmente não entendo o que você quer ... talvez você possa mostrar o que você quer e o que você tem. regexes e diff devem poder lidar com o que você deseja fazer.
18119 Joseph Kern
Você deve renomear sua postagem .... Existe uma ferramenta para comparar valores em arquivos .ini?
18711 Joseph Kern
1
Para OS / 2: os2world.com/goran/initools.htm ;-)
splattne
Obrigado Joseph, bom ponto, editei o título. splattne - initools parece perfeito, pena que estou usando o Windows.
ssollinger

Respostas:

6

O Beyond Compare possui uma regra INI classificada que você pode baixar .

crb
fonte
1
Fantástico, era exatamente isso que eu estava procurando. Eu examinei brevemente o Beyond Compare antes, mas não percebi a regra ini classificada. No caso de alguém estiver interessado, o link na sua resposta é para Beyond Compare 2. O "classificadas regra ini" para Beyond Compare 3 está disponível aqui: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger
Link do primeiro comentário não funciona - 404. Há uma outra página fr BC4 única - scootersoftware.com/download.php?zz=kb_moreformatsv4
pl71
4

Sim, eu sei que essa é uma pergunta antiga, mas eu gostaria de sugerir uma ferramenta que escrevi:

dzIniFileFormatter, disponível no SourceForge

dummzeuch
fonte
2

Muitas vezes, acabei de classificar os arquivos antes de compará-los. Não vai ajudar se você tiver algo como

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

mas, supondo que suas chaves sejam únicas (e, portanto, possam corresponder a uma seção), ela geralmente funciona muito bem.

Mikeage
fonte
Isso às vezes ajuda, no entanto, como você disse que não funciona se houver várias seções, também falha com freqüência se houver várias linhas ausentes em um dos arquivos (a maioria das ferramentas começa a tentar combinar as linhas incorretas).
ssollinger
verdadeiro; Não estou recomendando-o como um ideal, mas em um beliscão, que muitas vezes pode ajudar
Mikeage
2

Tente vimdiff. Aqui está um exemplo com arquivos .ini.

chmeee
fonte
MEUS OLHOS! .Xdefaults! Mude-os!
18119 Joseph Kern
1
Sim, é muito feio, desculpe. Mas acho que não tem nada a ver com .Xdefaults, pois é um console. Vou procurar na documentação do vim para alterar essas cores :).
chmeee
1
caso alguém esteja interessado - o vimdiff está disponível no site vim.org. VimDiff está ok, mas falha quando as linhas são trocadas e, em seguida, o valor é uma correspondência mais próxima que a string antes do sinal de igual. Nesse caso, o VimDiff mostrará a diferença na parte antes do sinal de igual, que não é o que eu quero.
ssollinger
0

Eu sempre gostei do Winmerge, muito personalizável.

Dave
fonte
O WinMerge é ótimo, mas não lida muito bem com os arquivos de configurações (arquivos .ini). É melhor do que alguns outros (como o WinDiff), mas minha pergunta foi para uma ferramenta que compara especificamente os valores nos arquivos .ini. O WinMerge não pode fazer isso.
ssollinger
1
O Winmerge possui uma configuração para comparar blocos de texto que foram movidos e são semelhantes. Eu o uso para comparar arquivos web.config, mas acho que esses são um pouco mais organizados que os arquivos ini.
Dave
Eu uso o WinMerge e faço uma substituição de regex em cada arquivo para remover os números antes de comparar ( [0-9]+=para =). Mas eu sempre tenho que descartar os arquivos alterados. Também estou procurando uma solução melhor.
Djidot