difftextfile.cs

来自「A Generic, Reusable Diff Algorithm in C#」· CS 代码 · 共 69 行

CS
69
字号
using System;
using System.IO;
using System.Collections;
using Diff;

namespace DiffCalcer
{
	public class TextLine : IComparable
	{
		public string Line;
		private int _hash;

		public TextLine(string str)
		{
			Line = str.Replace("\t","    ");
			_hash = str.GetHashCode();
		}
		#region IComparable Members

		public int CompareTo(object obj)
		{
			return _hash.CompareTo(((TextLine)obj)._hash);
		}

		#endregion
	}


	public class LineFile : IDiffList
	{
		private const int MaxLineLength = 1024;
		private ArrayList _lines;

		public LineFile(string fileName)
		{
			_lines = new ArrayList();
			using (StreamReader sr = new StreamReader(fileName)) 
			{
				String line;
				// Read and display lines from the file until the end of 
				// the file is reached.
				while ((line = sr.ReadLine()) != null) 
				{
					if (line.Length > MaxLineLength)
					{
						throw new InvalidOperationException(
							string.Format("File contains a line greater than {0} characters.",
							MaxLineLength.ToString()));
					}
					_lines.Add(new TextLine(line));
				}
			}

		}
		#region IDiffList Members

		public int Count()
		{
			return _lines.Count;
		}

		public IComparable GetByIndex(int index)
		{
			return (TextLine)_lines[index];
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?