goo blog サービス終了のお知らせ 

日々のDraft

回答原案集

愚痴

2012-04-18 20:39:09 | その他

TODO:Excelでエラーが出る処理と同じ処理をLibreOfficeでやってみたらどうなる?

  1. LibreOffice Calcを起動する。
  2. セルA1を選択
  3. 「挿入」→「名前」→「指定」
  4. 「名前」欄に「あいう」と入力して「追加」。(別にアドレスバー近くの入力欄でも良かったんだが、こっちのほうが伝えにくさが低いかなと思ってこの説明をしている)
  5. これで、セルA1は「あいう」という名前の範囲になったわけだ。
  6. これから、「ツール」→「マクロ」→「マクロの管理」→「LibreOffice」とたどってマクロを作るよ。マクロ名はなんでもいいや。で、「編集」
  7. REM: 2012-4-21T08:23+09:00 REM: 型の異なるオブジェクトなのに、同一の変数を使いまわすのはどうかと思ったので REM:コード修正 Sub TestMacro REM x: NamedRange Dim x As Object REM y:XCellRange Dim y As Object REM z:XCell Dim z As Object Set x = ThisComponent.NamedRanges(0) Set y = x.getReferredCells() Set z = x.getCellByPosition(0,0) End Sub
  8. 上記マクロを実行する。正常に終了しますね。
  9. で、通常の画面に戻ってA列を選択して削除。
  10. 結果として、この「名前」は残ったままなんだけど、この名前にはセルが含まれていない状態になるよね?さぁどうしよっか。NamedRangeにはセルの個数を調べるようなものがない。
  11. On Error Goto Hogeとかで誤魔化す?

愚痴

2012-04-10 23:43:39 | その他

なんで「ヘッダだけ表示」する機能が提供されているだけなんだろう、普通にメールのStreamを得たいのに…>Gmail以外

Q7411772がきっかけ。対応がまともになる可能性が少しはありそうなexciteにだけ一応要望送っといた。「今すぐ実装しろ」とかは出来ないだろうし別に要求しないから、「できねーよ」って返答があっても別に不満はないけど、あまりテンプレ回答は欲しくないところ。(むしろ、「面倒だからやりたくない」「コスト負ってくれないんだろ、どうせ」とかって書かれたほうがマシ)

期待するだけ無駄だったか


愚痴

2012-04-09 22:37:31 | その他

そうそう、\r\r\nに気づいて、まだ楽しそうな方の原因追及に行きだしたけど、本来は別の本題を考えるためだったんだっけ(どっちも内心「うぇぇ」って感じだった。義務ではないのでやらなくてもいいはずなのだが、そのくらいの苦労はしても楽しめればいいかと。)orz

Q7381082で書きだしたサービスの一覧ってLibreOfficeのリストってLibreOfficeの/URE/misc/services.rdbにある内容でそっくりだなーと思って、(中身XMLなので)XMLから必要な文字列達を取り出してソートして、イミディエイトウィンドウアプリケーション出力に書きだしたものと、ここのリストの内容を比較してみようと思った。その一覧をコピーした時に問題に遭遇したんだ。


愚痴

2012-04-09 22:11:18 | その他

Sorry for the delay in responding. It looks like gtk expands any \n into \r\n so the Scintilla code converts to \n to compensate for this. If the Scintilla code is removed, \r\r\n is put on the clipboard for each \r\n eol. The gtk code that does the \n -> \r\n expansion is in gdkproperty-win32.c's gdk_property_change function.

と多分同根なんだろうなあ、とは思うんだけど (GTK+版ScintillaのWin32版が見つからんので確認できんが)> MonoDevelopのアプリケーション出力とイミディエイトウィンドウ

ただ、わからないのは、System.Console.WriteLineによって出力された改行をコピーすると\r\r\nとなるのに、外部のアプリケーションから持ってきた文字列"abc\r\ndef"をイミディエイトウィンドウに貼り付けた上で、もう一度その文字列をコピーしても、"abc\r\r\ndef"ではないんだよね…なんでだろ?

おそらく作成したアプリケーション自体の内部で使われているStreamWriterに問題は無いだろうし、クリップボードの内容にはGTKのリッチテキスト的なフォーマットもあったから、それをファイルに書き出して、バイナリエディタで見ても\r\nになっていたから、プロセスが\r\r\nを吐き出してしまっていることはない、と踏んで、狙いをクリップボード側に定めてたんだが…

Mono上でMonoDevelop 2.9.4がクラッシュする件については、Monoのライブラリをlibgtk-win32-2.0-0.dllのバージョンが2.24になっているところ、.NET用GTK#ライブラリ用に提供されている2.16.6に差し替えてみたら、初回起動はハングするが、二回目以降は正常にウィンドウが表示される(が、いろんな操作が応答なしになりやすい。理由不明。)

将来的にはGTK+2.24以降やGTK# 3とかへの移行とかになるんだろうから、(時期とか詳しいことは知らん)、これを直させる方向へに持っていくことにも(無駄な作業やってる感と、負けた気がすることが理由で)少し抵抗がある。(すぐにはならんだろう、ってのなら、ありかもしれんが)