2010-10-17 10 views
5

कल्पना करें कि आप 2 texfiles है (के 500 KB मान लीजिए - 3 एमबी बड़े): पहला मूल है, दूसरा इस मूल के अद्यतन है। मैं कैसे पता लगा सकता हूं, क्या बदला गया था (डाला गया, हटाया गया) और जहां परिवर्तन हुए थे (मूल फ़ाइल की तुलना में अद्यतन फ़ाइल में)?2 टेक्स्ट फाइलों की तुलना: क्या और कहाँ परिवर्तन किए गए थे?

  1. क्या कोई उपकरण या पुस्तकालय कहीं है?
  2. किसी भी प्रसिद्ध टेक्स्ट संपादकों में इस फ़ंक्शन का निवास करता है?
  3. क्या कोई एल्गोरिदम जानता है? या बड़े पैमाने पर इसे हल करने के लिए सामान्य तरीके क्या हैं?
  4. यदि आप इस तरह की समस्या का सामना करते हैं तो आप क्या करेंगे? अपने विचारों के लिए

Thanx ...

+0

सॉरेगियर का डिफमेज मुफ्त है ... –

+0

@ मिच गेहूं - थैंक्स, अच्छा लग रहा है ... – lyborko

उत्तर

1

आप Notepad++ कोशिश कर सकते हैं यह है कि एक तुलना फ़ाइलों में प्लग एक खुला स्रोत पाठ संपादक है।

2

क्या आप ध्वनियों का वर्णन कर रहे हैं वास्तव में की तरह एक diff स्टाइल उपकरण। इस प्रकार की कार्यक्षमता कई उन्नत टेक्स्ट संपादकों में उपलब्ध है।

+0

कुछ समय बाद आपके उत्तर में मुझे पता चला कि कम से कम ओपन ऑफिस में यह सुविधा है ... धन्यवाद ... – lyborko

1

विकिपीडिया पर एक extensive list of file comparison tools नहीं है।

यदि आप इसे प्रोग्रामिक रूप से करना चाहते हैं तो मैंने पहले से ही यूनिक्स सिस्टम पर SED और AWK का उपयोग किया है - और विंडोज़ संस्करण हैं। मूल रूप से इन प्रकार की फाइल प्रोसेसिंग भाषाएं आपको टेक्स्ट-बाय-लाइन आधार पर टेक्स्ट फ़ाइलों को पढ़ने और तुलना करने की अनुमति देती हैं और फिर आपको अंतर के साथ कुछ करने की अनुमति देती हैं (उदाहरण के लिए उन्हें किसी तीसरे फ़ाइल में सहेजें)।

+0

उपरोक्त लिंक के लिए बहुत बहुत धन्यवाद। मैंने अपने द्वारा इस छोटे से टूल को विकसित करने की कोशिश की, लेकिन मुझे लगता है कि मुझे बहुत समय पहले आविष्कार किया गया था ... मुझे यकीन नहीं है कि अगर मैं इसे एप्लिकेशन में लागू करता हूं या मैं हर तुलनात्मक टूल का उपयोग करता हूं । – lyborko

0

वहाँ किसी भी उपकरण या लाइब्रेरी कहीं है?

वहाँ कई हैं। diff का उपयोग करने का प्रयास करें, यह एक कमांड लाइन आधारित फ़ाइल तुलना उपयोगिता है जो छोटे diffs के लिए ठीक काम करता है। लेकिन अगर दो फाइल बहुत अलग हैं, तो diff के आउटपुट को समझना मुश्किल होगा। उस स्थिति में आप दृश्य फ़ाइल diff उपकरण जैसे diffmerge, Kompare या vimdiff का उपयोग कर सकते हैं।

किसी भी अच्छी तरह से जाना पाठ संपादक में इस समारोह रहता है?

कई आधुनिक संपादकों vim की तरह, ग्रहण इस दृश्य diffing सुविधा ..

किसी को भी एक एल्गोरिथ्म पता है है? या बड़े पैमाने पर इसे हल करने के लिए सामान्य तरीके क्या हैं?

यह Longest common subsequence algorithm पर आधारित है, जिसे लोकप्रिय रूप से एलसीएस के नाम से जाना जाता है।

पुराने पाठ और नया पाठ की LCS भाग में कोई बदलाव नहीं किया है कि देता है। तो पुराने पाठ के कुछ हिस्सों जो एलसीएस का हिस्सा नहीं है वह बदल गया है।

अगर आप इस तरह की समस्या का सामना करना तुम क्या करते हैं?

मैं विज़ुअल डिफ टूल का उपयोग करता हूं ताकि यह देखने के लिए कि परिवर्तन और कहां किए गए थे।

0

यूनिक्स diff उपकरण लाइन-दर-रेखा अंतर करता है; wdiff नामक एक जीएनयू उपकरण है जो शब्द-दर-शब्द मतभेद करेगा, और अधिकांश लिनक्स वितरण या सिगविन के लिए पैकेज के रूप में उपलब्ध होना चाहिए।

एल्गोरिथ्म पर क्लासिक कागजात हैं:

संबंधित मुद्दे