Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Roslyn.Scripting;
- using Roslyn.Scripting.CSharp;
- using System.Collections.Generic;
- using System.IO;
- using System.Text.RegularExpressions;
- namespace Filterer
- {
- internal class Program
- {
- private static Regex regex = new Regex(@"myLib\.Translate\(([^)]*)\)", RegexOptions.Compiled);
- private static ISet<string> translationStrings = new HashSet<string>();
- private static ScriptEngine scriptEngine = new ScriptEngine();
- private static Session session = scriptEngine.CreateSession();
- private static void Main(string[] args)
- {
- string rootFolder = @"C:\XXX";
- TreatDirectory(rootFolder);
- // schreibt alle gesammelten translation strings in das File mit folgendem Pfad
- string outputFilePath = "";
- File.WriteAllLines(outputFilePath, translationStrings);
- }
- private static void TreatDirectory(string path)
- {
- // scannt nur Dateien die mit .cs enden
- foreach (string filePath in Directory.EnumerateFiles(path, "*.cs"))
- TreatFile(filePath);
- foreach (string directoryPath in Directory.EnumerateDirectories(path))
- TreatDirectory(directoryPath);
- }
- private static void TreatFile(string path)
- {
- using (var streamReader = new StreamReader(path))
- {
- string line;
- while ((line = streamReader.ReadLine()) != null)
- TreatLine(line);
- }
- }
- private static void TreatLine(string line)
- {
- if (line.Contains("myLib.Translate("))
- {
- string rawTranslationString = regex.Match(line).Groups[1].Value;
- translationStrings.Add(session.Execute<string>(rawTranslationString));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment