2010年8月19日木曜日

ワードにつけたコメントのイニシャルを変える

RubyスクリプトからOLEをつかってWordにコメントを付ける際に、
デフォルトのイニシャルから変更するには下記のようにすればよい。
 
com_idx = wdoc.Comments.Add(range, text).index
wdoc.Comments(com_idx).Initial = 'initial'
 
 
コメントのindex番号は、ファイルの最初から順番になるように常にrenumberされるため、
以下のようにコメントの数を自分でカウントする方法は、
コメントを付ける場所が行ったり来たりしたり、既にコメントが入っていた場合破綻する。
〜.each do |com_idx|
  wdoc.Comments.Add(range, text)
  wdoc.Comments(com_idx).Initial = 'initial'
end
 

キー入力を待ってポーズ

参照頁 http://lldev.jp/ruby/tips/miscellaneous.html


require 'Win32API'
kbhit = Win32API.new('msvcrt','_kbhit',[],'l')

print '続行するには何かキーを押してください'
while true
if kbhit.call != 0
break
end
end
puts "\nキーが押されました"

2010年8月13日金曜日

MeCabの辞書

当然のことながらMeCabの解析精度は使う辞書に依存する。
 
を参考に、UniDic現代語版(http://www.tokuteicorpus.jp/dist/)を使うことに。
 
ユーザー登録して、個別ファイル→unidic-mecab→unidic-mecab*_sjis.zip をダウンロード。
フォルダ dic\ipadic に中身を展開。
スタートメニュー MeCab → Recompile Shift_Jis Dictionary を実行
 
 
 
 

2010年8月12日木曜日

MeCab(形態素解析エンジン)をRuby(windows)でつかう

MeCab(http://mecab.sourceforge.net/)を、Rubyから使うことにトライ。
 
Windowsでは、mecab-rubyがうまく働かないらしい。
 
代わりに、こちら(http://nlp.sfc.keio.ac.jp/~aihara/nlp.html)にある、
dll経由でいじるスクリプトを使おうと思ったが、
どうも1.9.1では動かないらしい。。。
 
結局、こっち(file:///C:/Documents%20and%20Settings/060057/My%20Documents/ScrapBook/data/20100812121709/index.html)を参考にテンポラリファイルを介して、
いじる方法を使うことにした。
 
 
 

RubyでExcelにアクセスする

Rubyでアクセスするには XLS.rb(http://github.com/bash0C7/XLS/blob/master/xls.rb?locale=ja)を使うと、
一行ごとに'タイトル'=>'値'のハッシュが得られて便利。
 
ただ、一列目に空白セルがあるとそこで読み込みが終わってしまうので注意!
 
 
 

2010年8月11日水曜日

Rubyからパラグラフを取得する方法

すぐに忘れてしまうので、メモ
 
#! ruby -Ks
# -*- coding: cp932 -*-
require 'win32ole'
 
fso = WIN32OLE.new('Scripting.FileSystemObject')
path = fso.GetAbsolutePathName(ARGV[0])
 
word = WIN32OLE.new('Word.Application')
word.visible = false
 
doc = word.Documents.Open(path)
 
begin
  doc.Activate
  idx = 1
  doc.Paragraphs.each do |para|
    puts para.Range.Text
    puts doc.Paragraphs(idx).Range.Text
    idx += 1
    break if idx > 20
  end
  ensure
  doc.Close
  word.Quit
end
 
 
 
 

2010年8月2日月曜日

If の戻り値

ホワイの(感動的)rubyガイド(http://www.aoky.net/articles/why_poignant_guide_to_ruby/chapter-4.html
を読んでいたら、if が値を返すことをしった。

これまで3項演算子を多用してたけで、if 〜 then 〜 else 〜 end を使った方が読みやすそうなので、
今度からこっちを主に使うようにしよう。

2010年8月1日日曜日

Meadowでの rubyデバッガー

このページ(http://d.hatena.ne.jp/gan2/20070630/1183207143)を見ながら
Meadowに Ruby デバッガーの設定
Rubyのソースのmiscディレクトリから、rubydb3x.elをlispディレクトリに置いて、
.emacsに以下を追加。
;;; Ruby のデバッガを Emacs から使うための設定
;; M-x rubydb
(autoload 'rubydb "rubydb3x"
"run rubydb on program file in buffer *gud-file*.
the directory containing file becomes the initial working directory
and source-file directory for your debugger." t)

M-x rubydb で起動