Пример #1
0
        private void ProcessSourceFiles()
        {
            if (verbose)
            {
                Console.WriteLine("Processing source files");
            }

            foreach (var csFile in csFiles)
            {
                if (verbose)
                {
                    Console.WriteLine(" Processing file {0}", csFile);
                }

                bool   changed = false;
                string text, newtext;

                using (var reader = new StreamReader(csFile))
                {
                    text    = reader.ReadToEnd();
                    newtext = regex.Replace(text, match =>
                    {
                        var res   = match.Groups["ResName"].Value;
                        var entry = match.Groups["Entry"].Value;

                        var dict = resources.GetResource(res);
                        if (dict == null)
                        {
                            if (verbose)
                            {
                                Console.Out.WriteLine("  {0}: found not-understood resource in call {1}", csFile, match.Value);
                            }
                            return(match.Value);
                        }

                        string value = null;
                        if (!dict.Data.TryGetValue(entry, out value) || value == null)
                        {
                            if (verbose)
                            {
                                Console.Out.WriteLine("  {0}: found not-understood entry in call {1}", csFile, match.Value);
                            }
                            return(match.Value);
                        }

                        changed = true;
                        return(String.Format(@"{1}(@""{0}"")", Escape(value), funcname));
                    });
                }

                if (changed)
                {
                    using (var writer = new StreamWriter(csFile, false))
                    {
                        writer.Write(newtext);
                    }
                }
            }
        }