2010-09-21 15 views
10

मैं एक diff एल्गोरिदम खोज रहा हूं जो एसओ के संपादन संशोधन पृष्ठ जैसे परिणाम देगा। मैंने कम से कम देखा है और मैं इसे खुद करने का विरोध नहीं कर रहा हूं लेकिन मुझे पहिया को फिर से शुरू करने की आवश्यकता नहीं है।सी # डिफ एल्गोरिदम टेक्स्ट

मैं सी # 4.0 का उपयोग करूँगा। मैं मूल रूप से दो तार, और पुराना और एक नया होगा। मैं जानना चाहता हूं कि हाइलाइटिंग और स्ट्राइक करके नए में क्या बदल गया है।

उत्तर

3

आमतौर पर longest common substring एल्गोरिदम के साथ लागू किया गया। This post ब्याज का होगा।

+4

इसके नहीं सबसे लंबे समय तक आम **-स्ट्रिंग ** लेकिन सबसे लंबे समय तक आम ** परिणाम को **। एक सबस्ट्रिंग हमेशा निरंतर होता है लेकिन बाद में आवश्यकता नहीं होती है। नए पाठ प्राप्त करने के लिए पुराने पाठ में किए गए परिवर्तनों को लगातार वर्णों पर नहीं होना चाहिए। – codaddict

+0

ने सहमति व्यक्त की। आपको सबसे लंबी आम अनुक्रम समस्या बनाम सबसे लंबी आम सबस्ट्रिंग समस्या के बीच वर्गीकरण करने की आवश्यकता है। – quantity

5

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

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

ऊपर विकी पृष्ठ से:

यह एक क्लासिक कंप्यूटर विज्ञान समस्या, diff (एक फ़ाइल तुलना प्रोग्राम है जो दो फ़ाइलों के बीच मतभेद आउटपुट) का आधार है, और जैव सूचना विज्ञान में आवेदन पत्र है।

4

आप सी # में लिखे गए उदाहरण के लिए Menees Diff पर एक नज़र डाल सकते हैं।

+0

मृत लिंक, कृपया संशोधित करें। thx –

+1

लिंक को सही किया गया है। – cfeduke

1

मुझे यह पोस्ट स्पष्ट कोड और सरल उदाहरणों के साथ पालन करने में आसान पाया। मैंने इसे पढ़ा है, मैंने अभी तक इसे लागू नहीं किया है।

  1. Overview of the article series, outline of algorithms used.
  2. The Longest Common Substring implementation.
  3. The Diff implementation.
1

मैंने पाया कि गूगल diff, मैच और पैच जो सी # वर्गों और परीक्षण कोड शामिल करने के लिए कोड प्रकाशित किया है। IMHO का उपयोग करने के लिए कोड बहुत कठिन नहीं है।

https://code.google.com/archive/p/google-diff-match-patch/

खैर यहाँ प्रलेखित:

https://code.google.com/archive/p/google-diff-match-patch/wikis/API.wiki

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