目次
C#
言語まとめ C#
概要
Win32 API DLL の利用
Windows Forms
C# Windows Forms Tips
C# 設定情報を保存する
データベース
SQL Server Compact
制御
書式
Sleep
画面・コントロール
グラフ
タスクトレイ
リソース
文字列
デバッグ
Visual Studio
Visual Studio 2010 Express C#
コーディング規約
Tips
string を stream に変換
return new MemoryStream(Encoding.UTF8.GetBytes(value ?? ""));
ディレクトリを再帰的に表示
class Program { static void Main(string[] args) { var me = new Program(); me.Parse(args[0], 0); } private void Parse(string path, int depth) { var indent = new string(' ', depth * 2); foreach (var entry in Directory.EnumerateFileSystemEntries(path)) { var attr = File.GetAttributes(entry); if (attr.HasFlag(FileAttributes.Directory)) { Console.WriteLine($"{indent}{Path.GetDirectoryName(entry)}\\"); this.Parse(entry, depth + 1); } Console.WriteLine($"{indent}{Path.GetFileName(entry)}"); } } }
SHIFT-JIS 文字列から、SO SI を除去
var encShiftJis = Encoding.GetEncoding("shift_jis"); int lino = 1; using (var reader = new StreamReader(path, encShiftJis)) { string line = null; while ((line = reader.ReadLine())!=null) { byte[] bytes = encShiftJis.GetBytes(line); for(int i=0;i<bytes.Length; i++) { // bytes = bytes.Where(b => (b != 0x20 /*space*/ && b != 0x61 /*'a'*/)).ToArray(); bytes = bytes.Where(b => (b != 0x0E /*SO*/ || b != 0x0F /*SI*/)).ToArray(); } line = encShiftJis.GetString(bytes); Console.WriteLine($"{indent}{lino++:D4}:{line}"); } }
YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto
Copyright© 矢木 浩人 All Rights Reserved.