DiffText() публичный Метод

Find the difference in 2 texts, comparing by textlines.
public DiffText ( string TextA, string TextB ) : System.Item[]
TextA string A-version of the text (usualy the old one)
TextB string B-version of the text (usualy the new one)
Результат System.Item[]
Пример #1
0
        } // DiffText

        /// <summary>
        /// 
        /// </summary>
        /// <param name="listA"></param>
        /// <param name="listB"></param>
        /// <returns></returns>
        public static ProcessedResult DiffTextProcessed(string[] listA, string[] listB)
        {
            var result = new ProcessedResult();

            var diff = new Diff();

            var lastpos = 0;
            foreach (var v in diff.DiffText(listA, listB))
            {
                for (var i = lastpos; i < v.StartA; i++)
                {
                    //writefln(" %s", listA[i]);
                    result.Items.Add(new ProcessedItem()
                    {
                        LineNumber = i,
                        Line = listA[i],
                        Action = ProcessedItem.ActionEnum.Keep,
                    });
                }

                //writefln("lastpos(%d) : %s", lastpos, v);

                for (var i = 0; i < v.DeletedA; i++)
                {
                    result.Items.Add(new ProcessedItem()
                    {
                        LineNumber = v.StartA + i,
                        Line = listA[v.StartA + i],
                        Action = ProcessedItem.ActionEnum.Delete,
                    });
                }

                for (var i = 0; i < v.InsertedB; i++)
                {
                    result.Items.Add(new ProcessedItem()
                    {
                        LineNumber = v.StartB + i,
                        Line = listB[v.StartB + i],
                        Action = ProcessedItem.ActionEnum.Insert,
                    });
                }

                lastpos = v.StartA;
                lastpos += v.DeletedA;
            }

            for (var i = lastpos; i < listA.Length; i++)
            {
                result.Items.Add(new ProcessedItem()
                {
                    LineNumber = i,
                    Line = listA[i],
                    Action = ProcessedItem.ActionEnum.Keep,
                });
            }

            return result;
        }
Пример #2
0
		} // DiffText

		public static ProcessedResult DiffTextProcessed(string[] listA, string[] listB)
		{
			var result = new ProcessedResult();

			var diff = new Diff();

			int lastpos = 0;
			foreach (var v in diff.DiffText(listA, listB))
			{
				for (int i = lastpos; i < v.StartA; i++)
				{
					//writefln(" %s", listA[i]);
					result.Items.Add(new ProcessedItem()
					{
						LineNumber = i,
						Line = listA[i],
						Action = ProcessedItem.ActionEnum.Keep,
					});
				}

				//writefln("lastpos(%d) : %s", lastpos, v);

				for (int i = 0; i < v.deletedA; i++)
				{
					result.Items.Add(new ProcessedItem()
					{
						LineNumber = v.StartA + i,
						Line = listA[v.StartA + i],
						Action = ProcessedItem.ActionEnum.Delete,
					});
				}

				for (int i = 0; i < v.insertedB; i++)
				{
					result.Items.Add(new ProcessedItem()
					{
						LineNumber = v.StartB + i,
						Line = listB[v.StartB + i],
						Action = ProcessedItem.ActionEnum.Insert,
					});
				}

				lastpos = v.StartA;
				lastpos += v.deletedA;
			}

			for (int i = lastpos; i < listA.Length; i++)
			{
				result.Items.Add(new ProcessedItem()
				{
					LineNumber = i,
					Line = listA[i],
					Action = ProcessedItem.ActionEnum.Keep,
				});
			}

			return result;
		}