Rubyonというのは、うちのホームページで使っている
簡単なものなので、うちではRubyで書いて使っていた。これをC#で書き直してみる。
// Main.cs created with MonoDevelop // User: username at 6:48 2009/02/04 // // To change standard headers go to Edit->Preferences->Coding->Standard Headers // using System; using System.IO; using System.Text.RegularExpressions; namespace rubyon { class MainClass { static string rubyFilter(string str){ string str2 = Regex.Replace(str,@"\[([^\[<>\]]+)<([^\[<>\]]+)>\]","<ruby><rb>$1</rb><rp>(</rp><rt>$2</rt><rp>)</rp></ruby>"); return str2; } static string fileRead(string fn){ string seq = ""; // ファイルからテキストを読み出し。 using(StreamReader r = new StreamReader(@fn)){ string line; while( (line = r.ReadLine()) != null){ // 1行ずつ読み出し。 //Console.WriteLine(line); seq = seq + rubyFilter(line) + "\n"; } } return seq; } static void fileWrite(string fn,string str){ // ファイルにテキストを書き出し。 using(StreamWriter w = new StreamWriter(@fn)){ w.Write(str); } } public static void Main(string[] args) { Console.WriteLine("ディレクトリ情報です。"); DirectoryInfo dir = new DirectoryInfo("."); foreach(FileInfo f in dir.GetFiles()) { if(Regex.IsMatch(f.Name,".html$", RegexOptions.IgnoreCase)){ string name = f.Name; string ext = f.Extension; DateTime t = f.CreationTime; Console.WriteLine("{0}を処理します。({1}/{2})",name,ext,t.ToString("hh:mm:ss")); string str = fileRead(name); fileWrite(name,str); } } } } }
どうかな。
現在あなたが見ているこのページは、既にこのC#版の改訂版で加工されている。ふ、バッチリだぜ B)