Apakah ada alat untuk membandingkan nilai dalam file .ini? [Tutup]

10

Saya mencari utilitas perbandingan file khusus untuk file .ini, biasanya digunakan sebagai file pengaturan.

Ada banyak alat perbandingan file (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), tetapi tidak ada alat yang saya coba dapat menangani file .ini dengan sangat baik.

File .ini yang khas dapat terlihat seperti ini:

[Settings]
Setting1=abc
Setting2=xyz

Alat harus mencocokkan garis berdasarkan string sebelum tanda sama dengan, kemudian menunjukkan perbedaan dalam segala sesuatu yang lain setelah tanda sama. Urutan garis dalam suatu bagian (bagian ditunjukkan oleh tanda kurung siku) tidak masalah dan harus diabaikan.

Saya tidak dapat menemukan alat yang dapat menangani ini. Biasanya alat yang ada akan menunjukkan perbedaan di awal baris sebelum tanda sama dengan (jika sebagian besar teks setelah tanda sama dengan cocok), mereka akan kesulitan dengan memesan ulang baris (baik menunjukkan semuanya sebagai diubah atau cocok dengan beberapa baris dan menunjukkan sisanya seperti dihapus di satu tempat dan kemudian ditambahkan di tempat lain). Saya bahkan menemukan beberapa alat di mana teks yang cocok dapat dibatasi misalnya menggunakan ekspresi reguler, tetapi ini hanya mengabaikan sisa baris dan saya tidak dapat mencocokkan garis berdasarkan pada satu pola (yaitu segala sesuatu sebelum tanda sama dengan) dan kemudian membandingkannya berdasarkan di lain (semuanya setelah tanda sama dengan).

ssollinger
sumber
Sekarang saya sudah membaca pertanyaan Anda, saya benar-benar tidak mengerti apa yang Anda inginkan ... mungkin Anda dapat menunjukkan apa yang Anda INGIN serta apa yang Anda miliki. regex dan diff harus dapat menangani apa yang ingin Anda lakukan.
Joseph Kern
Anda harus mengganti nama posting Anda .... Apakah ada alat untuk membandingkan nilai dalam file .ini?
Joseph Kern
1
Untuk OS / 2: os2world.com/goran/initools.htm ;-)
splattne
Terima kasih Joseph, poin yang bagus, saya telah mengedit judulnya. splattne - initools kedengarannya akan sempurna, sayang saya menggunakan Windows.
ssollinger

Jawaban:

6

Beyond Compare memiliki aturan INI diurutkan yang dapat Anda unduh .

crb
sumber
1
Luar biasa, itulah tepatnya yang saya cari. Saya memang sempat melihat Beyond Compare sebelumnya tetapi tidak melihat aturan diurutkan ini. Jika ada yang tertarik, tautan dalam balasan Anda adalah untuk Beyond Compare 2. "Aturan diurutkan ini" untuk Beyond Compare 3 tersedia di sini: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger
Tautan dari komentar pertama tidak berfungsi - 404. Hanya ada halaman lain dari BC4 - scootersoftware.com/download.php?zz=kb_moreformatsv4
pl71
4

Ya, saya tahu ini adalah pertanyaan kuno, tetapi saya ingin menyarankan alat yang saya tulis:

dzIniFileFormatter yang tersedia dari SourceForge

Dummzeuch
sumber
2

Saya sering hanya mengurutkan file sebelum membandingkan. Tidak akan membantu jika Anda memiliki sesuatu seperti

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

tetapi dengan anggapan bahwa kunci Anda unik (dan karena itu dapat dicocokkan dengan bagian), sering berhasil dalam keadaan darurat.

Mikeage
sumber
Ini kadang-kadang membantu, namun ketika Anda mengatakan itu tidak berfungsi jika ada beberapa bagian, itu juga sering gagal jika ada beberapa baris yang hilang di salah satu file (sebagian besar alat kemudian mulai mencoba mencocokkan baris yang salah ke atas).
ssollinger
benar; Saya tidak merekomendasikan sebagai ideal, tetapi dalam keadaan darurat, sering dapat membantu
Mikeage
2

Coba vimdiff. Berikut ini contoh dengan file .ini.

chmeee
sumber
MATAKU! .Xdefaults! Ubah mereka!
Joseph Kern
1
Ya, sangat jelek, maaf. Tapi saya tidak berpikir itu tidak ada hubungannya dengan. Xdefaults karena ini adalah konsol. Saya akan melihat dokumentasi vim untuk mengubah warna-warna ini :).
chmeee
1
seandainya ada orang lain yang tertarik - vimdiff tersedia melalui vim.org. VimDiff baik-baik saja, tetapi gagal ketika garis-garis ditukar dan kemudian nilainya lebih cocok dengan string sebelum tanda sama dengan. Dalam hal ini VimDiff akan menunjukkan perbedaan pada bagian sebelum tanda sama dengan, yang bukan yang saya inginkan.
ssollinger
0

Saya selalu menyukai Winmerge, sangat bisa dikustomisasi.

Dave
sumber
WinMerge bagus tetapi tidak menangani file pengaturan (file .ini) dengan sangat baik. Lebih baik daripada yang lain (seperti WinDiff), tetapi pertanyaan saya adalah alat yang secara khusus membandingkan nilai dalam file .ini. WinMerge tidak dapat melakukan ini.
ssollinger
1
Winmerge memiliki pengaturan untuk membandingkan blok teks yang telah dipindahkan dan serupa. Saya menggunakannya untuk membandingkan file web.config, tapi saya kira itu sedikit lebih terorganisir daripada file ini.
Dave
Saya menggunakan WinMerge dan melakukan substitusi regex pada setiap file untuk menghapus angka sebelum membandingkan ( [0-9]+=ke =). Tapi saya selalu membuang file yang diubah. Saya juga mencari solusi yang lebih baik.
djeidot