Ejemplo n.º 1
0
        static void StartProcess(CmdArgs args)
        {
            var file    = new GFile(args.InFile, args.OutFile);
            var xOffset = new OffsetController(args.OffsetX);
            var yOffset = new OffsetController(args.OffsetY);

            file.Reset();
            foreach (var line in file.ReadLines())
            {
                if (RegexHelper.TryParse(line, XPattern, out double x))
                {
                    xOffset.Approve(x);
                }
                if (RegexHelper.TryParse(line, YPattern, out double y))
                {
                    yOffset.Approve(y);
                }
            }

            string output;

            foreach (var line in file.ReadLines())
            {
                output = line;
                output = RegexHelper.Replace(output, XPattern, xOffset);
                output = RegexHelper.Replace(output, YPattern, yOffset);

                file.WriteLine(output);
            }

            Console.WriteLine($"Created file: {args.OutFile}");
            Console.WriteLine(xOffset.PrintInfo("X"));
            Console.WriteLine(yOffset.PrintInfo("Y"));
        }
Ejemplo n.º 2
0
        public static string Replace(string line, string pattern, OffsetController offset)
        {
            var format = new DoubleFormatter();
            Func <Match, string> evaluate = (match) =>
            {
                if (TryParse(match, out double value))
                {
                    return(string.Format(format, "{0}{1}", match.Value[0], offset.Adjust(value)));
                }
                return(line);
            };

            var evaluator = new MatchEvaluator(evaluate);

            return(Regex.Replace(line, pattern, evaluator));
        }