Esiste uno strumento per confrontare i valori nei file .ini? [chiuso]


10

Sto cercando un'utilità di confronto dei file specifica per i file .ini, generalmente utilizzati come file di impostazioni.

Esistono molti strumenti di confronto dei file (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), ma nessuno degli strumenti che ho provato è in grado di gestire molto bene i file .ini.

Un tipico file .ini potrebbe essere simile al seguente:

[Settings]
Setting1=abc
Setting2=xyz

Lo strumento dovrebbe abbinare le linee in base alla stringa prima del segno di uguale, quindi mostrare le differenze in tutto il resto dopo il segno di uguale. L'ordine delle linee all'interno di una sezione (le sezioni sono indicate da parentesi quadre) non ha importanza e deve essere ignorato.

Non riesco a trovare nessuno strumento in grado di gestirlo. Gli strumenti tipicamente esistenti mostreranno differenze all'inizio della riga prima del segno di uguale (se la maggior parte del testo dopo il segno di uguale corrisponde), avranno difficoltà con le righe riordinate (o mostreranno tutto come modificato o corrisponderanno ad alcune linee e mostreranno il rimanente viene eliminato in un punto e quindi aggiunto in un altro). Ho anche trovato alcuni strumenti in cui è possibile limitare la corrispondenza del testo, ad esempio utilizzando espressioni regolari, ma questi semplicemente ignorano il resto della linea e non riesco a far corrispondere le linee in base a un modello (cioè tutto prima del segno uguale) e quindi confrontarle in base su un altro (tutto dopo il segno uguale).


Ora che ho letto la tua domanda, non capisco davvero cosa vuoi ... forse puoi mostrare ciò che VUOI e ciò che hai. regexes e diff dovrebbero essere in grado di gestire ciò che si desidera fare.
Joseph Kern,

Dovresti rinominare il tuo post .... Esiste uno strumento per confrontare i valori nei file .ini?
Joseph Kern,


Grazie Giuseppe, buon punto, ho modificato il titolo. splattne - initools sembra perfetto, peccato che io stia usando Windows.
ssollinger,

Risposte:


6

Beyond Compare ha una regola INI ordinata che puoi scaricare .


1
Fantastico, è esattamente quello che stavo cercando. Ho esaminato brevemente Beyond Compare prima, ma non ho notato la regola ini ordinata. Nel caso qualcuno fosse interessato, il link nella tua risposta è per Beyond Compare 2. La "regola ini ordinata" per Beyond Compare 3 è disponibile qui: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger

Il collegamento dal primo commento non funziona - 404. Esiste un'altra pagina solo da BC4 - scootersoftware.com/download.php?zz=kb_moreformatsv4
pl71


2

Spesso ho appena ordinato i file prima del confronto. Non ti aiuterà se hai qualcosa del genere

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

ma supponendo che le tue chiavi siano univoche (e possano quindi essere abbinate a una sezione), spesso funziona in modo estremamente semplice.


Questo a volte aiuta, tuttavia come hai detto che non funziona se ci sono diverse sezioni, spesso fallisce anche se ci sono diverse righe mancanti in uno dei file (la maggior parte degli strumenti inizia quindi a cercare di abbinare le righe sbagliate).
ssollinger,

vero; Non lo sto raccomandando come ideale, ma in un pizzico può spesso aiutare
Mikeage,

2

Prova vimdiff. Ecco un esempio con i file .ini.


I MIEI OCCHI! .Xdefaults! Cambiali!
Joseph Kern,

1
Sì, è molto brutto, scusa. Ma non penso che non abbia nulla a che fare con .Xdefaults in quanto si tratta di console. Guarderò nella documentazione di VIM per cambiare questi colori :).
Chmeee,

1
nel caso in cui qualcun altro sia interessato - vimdiff è disponibile tramite vim.org. VimDiff è ok, ma fallisce quando le linee vengono scambiate e quindi il valore è una corrispondenza più stretta della stringa prima del segno di uguale. In questo caso VimDiff mostrerà la differenza nella parte prima del segno di uguale, che non è quello che voglio.
ssollinger,


0

Mi è sempre piaciuto Winmerge, molto personalizzabile.


WinMerge è eccezionale, ma non tratta molto bene i file delle impostazioni (file .ini). È meglio di altri (come WinDiff), ma la mia domanda era per uno strumento che confronta specificamente i valori nei file .ini. WinMerge non può farlo.
ssollinger,

1
Winmerge ha un'impostazione per confrontare blocchi di testo che sono stati spostati e sono simili. Lo uso per confrontare i file web.config, ma immagino che siano un po 'più organizzati dei file ini.
Dave,

Uso WinMerge e faccio una sostituzione regex su ogni file per rimuovere i numeri prima di confrontare ( [0-9]+=a =). Ma devo sempre scartare i file modificati. Sto anche cercando una soluzione migliore.
djeidot,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.