Guest User

Untitled

a guest
Nov 13th, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.57 KB | None | 0 0
  1. using Roslyn.Scripting;
  2. using Roslyn.Scripting.CSharp;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Text.RegularExpressions;
  6.  
  7. namespace Filterer
  8. {
  9.     internal class Program
  10.     {
  11.         private static Regex regex = new Regex(@"myLib\.Translate\(([^)]*)\)", RegexOptions.Compiled);
  12.         private static ISet<string> translationStrings = new HashSet<string>();
  13.         private static ScriptEngine scriptEngine = new ScriptEngine();
  14.         private static Session session = scriptEngine.CreateSession();
  15.  
  16.         private static void Main(string[] args)
  17.         {
  18.             string rootFolder = @"C:\XXX";
  19.             TreatDirectory(rootFolder);
  20.  
  21.             // schreibt alle gesammelten translation strings in das File mit folgendem Pfad
  22.             string outputFilePath = "";
  23.             File.WriteAllLines(outputFilePath, translationStrings);
  24.         }
  25.  
  26.         private static void TreatDirectory(string path)
  27.         {
  28.             // scannt nur Dateien die mit .cs enden
  29.             foreach (string filePath in Directory.EnumerateFiles(path, "*.cs"))
  30.                 TreatFile(filePath);
  31.  
  32.             foreach (string directoryPath in Directory.EnumerateDirectories(path))
  33.                 TreatDirectory(directoryPath);
  34.         }
  35.  
  36.         private static void TreatFile(string path)
  37.         {
  38.             using (var streamReader = new StreamReader(path))
  39.             {
  40.                 string line;
  41.                 while ((line = streamReader.ReadLine()) != null)
  42.                     TreatLine(line);
  43.             }
  44.         }
  45.  
  46.         private static void TreatLine(string line)
  47.         {
  48.             if (line.Contains("myLib.Translate("))
  49.             {
  50.                 string rawTranslationString = regex.Match(line).Groups[1].Value;
  51.                 translationStrings.Add(session.Execute<string>(rawTranslationString));
  52.             }
  53.         }
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment