.İni dosyalarındaki değerleri karşılaştırmak için bir araç var mı? [kapalı]


10

Özellikle ayarlar dosyaları olarak kullanılan .ini dosyaları için bir dosya karşılaştırma yardımcı programı arıyorum.

Çok sayıda dosya karşılaştırma aracı vardır (WinDiff, Beyond Compare, CompareIt, WinMerge, ...), ancak denediğim araçların hiçbiri .ini dosyalarını çok iyi işleyemiyor.

Tipik bir .ini dosyası şöyle görünebilir:

[Settings]
Setting1=abc
Setting2=xyz

Araç, eşittir işaretinden önceki dizeye göre satırlarla eşleşmeli, ardından eşittir işaretinden sonraki her şeyde farklılıklar göstermelidir. Bir bölüm içindeki çizgilerin sırası (bölümler köşeli parantez ile belirtilir) önemli değildir ve göz ardı edilmelidir.

Bunun üstesinden gelebilecek hiçbir araç bulamıyorum. Tipik olarak mevcut araçlar, eşit işaretten önceki satırın başlangıcında farklılıklar gösterir (eşittir işaretinden sonra metnin çoğu eşleşirse), yeniden sıralanan satırlarla mücadele ederler (ya tümünü değiştirilmiş olarak göster veya bazı satırlarla eşleştir ve göster kalanlar bir yerde silinir ve sonra başka bir yere eklenir). Eşleşen metnin örneğin normal ifadeler kullanarak kısıtlanabileceği bazı araçlar bile buldum, ancak bunlar satırın geri kalanını görmezden geliyor ve satırları tek bir desene (yani eşittir işaretinden önceki her şeye) göre eşleştiremiyorum ve sonra bunları karşılaştırıyorum diğerinde (eşittir işaretinden sonraki her şey).


Şimdi sorunuzu okuduğuma göre, ne istediğinizi gerçekten anlamıyorum ... belki ne istediğinizi ve ne istediğinizi gösterebilirsiniz. regexes ve diff ne yapmak istediğinizi işleyebilmelidir.
Joseph Kern

Yayınınızı yeniden adlandırmalısınız .... .ini dosyalarındaki değerleri karşılaştırmak için bir araç var mı?
Joseph Kern


Teşekkürler Joseph, iyi bir nokta, başlığı düzenledim. splattne - initools mükemmel olurdu gibi geliyor, utanç Windows kullanıyorum.
ssollinger

Yanıtlar:


6

Karşılaştırma bir etti ötesinde sıralanmış INI kural yapabilirsiniz indirmek .


1
Fantastik, tam da aradığım şey buydu. Ben daha önce Beyond Compare kısaca baktım ama sıralanmış ini kural fark etmedi. Herkes ilgileniyorsa, cevabınızdaki bağlantı Beyond Compare 2 içindir. Beyond Compare 3 için "sıralanmış ini kuralı" burada mevcuttur: scootersoftware.com/download.php?zz=kb_moreformats
ssollinger

İlk yorumdan bağlantı çalışmıyor - 404. Sadece
BC4


2

Dosyaları karşılaştırmadan önce sık sık sıraladım. Gibi bir şey varsa yardımcı olmaz

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

ancak anahtarlarınızın benzersiz olduğunu (ve bu nedenle bir bölümle eşleştirilebileceğini) varsayarsak, genellikle bir çimdikle çalışır.


Bu bazen yardımcı olur, ancak birkaç bölüm varsa işe yaramadığını söylediğiniz gibi, dosyalardan birinde eksik birkaç satır varsa da sıklıkla başarısız olur (çoğu araç daha sonra yanlış satırları eşleştirmeye çalışır).
ssollinger

doğru; Ben ideal olarak tavsiye etmiyorum, ama bir tutam, genellikle yardımcı olabilir
Mikeage

2

Vimdiff'i deneyin. İşte .ini dosyaları ile bir örnek .


GÖZLERİM! .Xdefaults! Onları değiştir!
Joseph Kern

1
Evet, çok çirkin, üzgünüm. Ama bu konsol olduğu için .Xdefaults ile bir ilgisi olduğunu düşünmüyorum. Bu renkleri değiştirmek için vim belgelerine bakacağım :).
chmeee

1
başka birinin ilgilenmesi durumunda - vimdiff, vim.org aracılığıyla edinilebilir. VimDiff tamam, ancak çizgiler değiştiğinde başarısız olur ve daha sonra değer, eşittir işaretinden önceki dize ile daha yakın bir eşleşme olur. Bu durumda VimDiff, eşit işaretten önceki kısımdaki farkı gösterecektir, ki bu benim istediğim şey değil.
ssollinger


0

Winmerge'i her zaman sevdim, çok özelleştirilebilir.


WinMerge harika ama ayar dosyalarıyla (.ini dosyaları) çok iyi ilgilenmiyor. Bazılarından daha iyi (WinDiff gibi), ancak sorum özellikle .ini dosyalarındaki değerleri karşılaştıran bir araç içindi. WinMerge bunu yapamaz.
ssollinger

1
Winmerge, taşınmış ve benzer metin bloklarını karşılaştırmak için bir ayara sahiptir. Web.config dosyalarını karşılaştırmak için kullanıyorum, ancak bunların ini dosyalarından biraz daha organize olduğunu düşünüyorum.
Dave

WinMerge kullanın ve ( [0-9]+=to =) karşılaştırmadan önce numaraları kaldırmak için her dosya üzerinde bir regex ikame yapmak . Ama her zaman değiştirilen dosyaları atmalıyım. Ayrıca daha iyi bir çözüm arıyorum.
10je10
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.