投稿

6月, 2013の投稿を表示しています

[Word] 作業ファイルを作成できません。環境変数 TEMP の設定を確認してください。

イメージ
そのほか、Excel の "画像が × 印になって表示されなくなる" という事象、PowerPoint の "このイメージは、現在表示できません" も同時に直す方法がようやく判明した。 もちろん、本当に環境変数がおかしい場合もあるが、結論からいうと Office と Internet Explorer は 2010 になってもなお、密接に結びついており、OS とも密着しているようだ。 こちらのサイトにあるとおりだった。 解決方法は、 IE の一時ファイルの場所を変更し、ログオンし直し たらきれいさっぱりすべての現象が直ってくれた。 Office 2007とInternet Explorer 7.0の密接な関係 http://xwin2.typepad.jp/xwin2weblog/2008/09/office-2007inte.html このパターンは、TEMP や 一時ファイルを任意の場所に移動したあと、該当するドライブがなくなってしまったときに発生する。RAM ディスクを作成した場合に起こりやすいのではないだろうか。 なお、Office 2010 と IE 9 (Windows 7) などでも同様の現象が起こる。 これはいい加減 修正した方がいいと思う。

[C# 2.0] 匿名メソッドもラムダ式と同じように書ける

C# 3.0 より導入されたラムダ式により、C# のソースは劇的に変化した。 とはいえ、これは C# 2.0  にもあった匿名メソッドをより簡潔にしたものであるので C# 2.0 でも同じようなことは書ける。 2.0 世代に、積極的に匿名メソッドを書いているソースは自分は見たことがないのだが、C# 3.0 以降の書き方に慣れてしまうと 2.0 世代のソースは冗長なものに見えてしまう。 foreach の書き換え。 List< int> lst = new List< int>(); lst.Add(-10); lst.Add(5); lst.Add(24); lst.Add(112); List lst2 = lst.FindAll(delegate(int i) {     return i < 10; }); lst2.ForEach(delegate(int i) {     Console.WriteLine(i.ToString()); }); // -10 // 5 だいぶ簡潔に書ける。 しかし、以下のようにも書けてしまう。 一見すると意味不明ではあるがエラーにはならない。 lst.FindAll(delegate(int i) { return i < 10; }).ForEach(delegate(int i) { Console.WriteLine(i.ToString()); }); 値の一致 List< int> lst = new List< int>(); lst.Add(-10); lst.Add(5); lst.Add(24); lst.Add(112); bool b = lst.Exists(delegate(int i) { return i.Equals(5); }); Console.WriteLine(b); // True 文字列の検索 List< string> lst = new List< string>(); lst.Add("taro"); lst.Add("jiro"); lst.Add("hogetaro"); lst.Add