Exemple #1
0
        public static bool GetFiles(string[] args)
        {
            //Get Arguments
            if (args != null)
            {
                foreach (string s in args)
                {
                    if (String.IsNullOrEmpty(LeftSide))
                    {
                        LeftSide = s;
                    }
                    else if (String.IsNullOrEmpty(RightSide))
                    {
                        RightSide = s;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            //If I did not pass files in arguments then ask user for files
            if (String.IsNullOrEmpty(LeftSide) || String.IsNullOrEmpty(RightSide))
            {
                Console.WriteLine("Drag and Drop Path to File 1 (then press enter):\n");
                LeftSide = Console.ReadLine();

                Console.WriteLine("\nDrag and Drop Path to File 2 (then press enter):\n");
                RightSide = Console.ReadLine();
            }


            //Check if I have 2 valid files to compare
            if (!FileValidator.ValidFile(LeftSide))
            {
                CLIComparer.InvalidFile(LeftSide);
                return(false);
            }
            if (!FileValidator.ValidFile(RightSide))
            {
                CLIComparer.InvalidFile(RightSide);
                return(false);
            }

            return(true);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            CLIComparer.ShowHeader();

            for (int i = 0; i < 5; i++)
            {
                if (CLIComparer.GetFiles(args))
                {
                    break;
                }
                //After tries we exit
                if (i == 4)
                {
                    return;
                }
            }



            CLIComparer.CompareFiles();
        }
Exemple #3
0
        public static void CompareFiles()
        {
            CLIComparer.Init();

            //If I am here I have valid files, start comparing
            CompareEngine.CompareEngine compareEngine = new CompareEngine.CompareEngine();

            //Load the file paths into objects
            CompareText sourceDiffList      = new CompareText(LeftSide);
            CompareText destinationDiffList = new CompareText(RightSide);

            //Perform the comparison
            compareEngine.StartDiff(sourceDiffList, destinationDiffList);
            //Get Results
            ArrayList resultLines = compareEngine.DiffResult();
            string    numberMask  = GetNumberMask(sourceDiffList.Count(), destinationDiffList.Count());

            int lineCounter = 1;

            foreach (CompareResultSpan compareResultSpan in resultLines)
            {
                switch (compareResultSpan.Status)
                {
                case CompareResultSpanStatus.DeleteSource:
                    for (int i = 0; i < compareResultSpan.Length; i++)
                    {
                        string initial = "";
                        string rewrite = "";

                        initial += lineCounter.ToString(numberMask);
                        rewrite += lineCounter.ToString(numberMask);

                        initial += " < " + sourceDiffList.GetByIndex(compareResultSpan.SourceIndex + i).Line + "";

                        CLIComparer.DiffLines.Add(initial);

                        lineCounter++;
                        CLIComparer.MissingSourceCounter++;
                    }

                    break;

                case CompareResultSpanStatus.NoChange:
                    for (int i = 0; i < compareResultSpan.Length; i++)
                    {
                        lineCounter++;
                    }

                    break;

                case CompareResultSpanStatus.AddDestination:
                    for (int i = 0; i < compareResultSpan.Length; i++)
                    {
                        string rewrite = "";

                        rewrite += lineCounter.ToString(numberMask);


                        rewrite += " > " + destinationDiffList.GetByIndex(compareResultSpan.DestinationIndex + i).Line + "";

                        CLIComparer.DiffLines.Add(rewrite);

                        lineCounter++;
                        CLIComparer.MissingDestCounter++;
                    }

                    break;

                case CompareResultSpanStatus.Replace:
                    for (int i = 0; i < compareResultSpan.Length; i++)
                    {
                        string initial = "";
                        string rewrite = "";

                        initial += lineCounter.ToString(numberMask);
                        rewrite += lineCounter.ToString(numberMask);

                        initial += " initial:";
                        rewrite += " rewrite:";

                        initial += sourceDiffList.GetByIndex(compareResultSpan.SourceIndex + i).Line;
                        rewrite += destinationDiffList.GetByIndex(compareResultSpan.DestinationIndex + i).Line;

                        CLIComparer.DiffLines.Add(initial);
                        CLIComparer.DiffLines.Add(rewrite);

                        lineCounter++;
                        CLIComparer.DiffsCounter++;
                    }

                    break;
                }
            }

            CLIComparer.ShowSummary();
        }