CSharpUtils.Diff.CreateDiffs C# (CSharp) Метод

CreateDiffs() приватный статический Метод

Scan the tables of which lines are inserted and deleted, producing an edit script in forward order.
private static CreateDiffs ( DiffData DataA, DiffData DataB ) : System.Item[]
DataA DiffData
DataB DiffData
Результат System.Item[]
		private static Item[] CreateDiffs(DiffData DataA, DiffData DataB)
		{
			ArrayList a = new ArrayList();
			Item aItem;
			Item[] result;

			int StartA, StartB;
			int LineA, LineB;

			LineA = 0;
			LineB = 0;
			while (LineA < DataA.Length || LineB < DataB.Length)
			{
				if ((LineA < DataA.Length) && (!DataA.modified[LineA])
				  && (LineB < DataB.Length) && (!DataB.modified[LineB]))
				{
					// equal lines
					LineA++;
					LineB++;

				}
				else
				{
					// maybe deleted and/or inserted lines
					StartA = LineA;
					StartB = LineB;

					while (LineA < DataA.Length && (LineB >= DataB.Length || DataA.modified[LineA]))
						// while (LineA < DataA.Length && DataA.modified[LineA])
						LineA++;

					while (LineB < DataB.Length && (LineA >= DataA.Length || DataB.modified[LineB]))
						// while (LineB < DataB.Length && DataB.modified[LineB])
						LineB++;

					if ((StartA < LineA) || (StartB < LineB))
					{
						// store a new difference-item
						aItem = new Item();
						aItem.StartA = StartA;
						aItem.StartB = StartB;
						aItem.deletedA = LineA - StartA;
						aItem.insertedB = LineB - StartB;
						a.Add(aItem);
					} // if
				} // if
			} // while

			result = new Item[a.Count];
			a.CopyTo(result);

			return (result);
		}