2007-07-01から1ヶ月間の記事一覧

ファイルに書き込めない!と言われたときは

第2引数を忘れてます。 io = open("hoge.txt", "w+") 読み込みのときは不要。

Vistaでスリープ復帰時にユーザー選択&パスワード入力をなくす方法

ユーザーが1人しかいない場合、スリープ復帰時にユーザーを選択するのは面倒。 なので、 コントロールパネル→ハードウェアとサウンド→電源オプションの中にある「スリープ解除時のパスワード要求」 を選び、「要求しない」に設定すると復帰時に何もしなくて…

UACをオフにする方法

ユーザーアカウント制御は何かとうるさいのでオフにしてしまう。 コントロールパネル→ユーザーアカウント→ユーザーアカウント制御の有効化または無効化 を選び、チェックをはずす。はずしたらはずしたで、バルーンによる警告がうるさいが、 まぁ、それはそれ…

Arrayの中身でのソート

Arrayにオブジェクトが入っていて、かつ、そのオブジェクトの1パラメータでソートする場合。 class hoge attr_accessor :id end # listにhogeを複数追加 : #以下、ソート puts list.sort_by{|hoge| hoge.id} 便利すぎ。 Hashの場合は hash.sort{|a, b| a[1] …

日本語文字の処理

Rubyはバイトコードで処理するので、日本語文字の処理が直感的にできない悩みがあったけど、 jcode+JStringの組み合わせで漢字も含めて対処できるかもしれない。http://taiyaki.org/ruby/jstring/ $KCODE='u' require 'jcode' require 'jstring' str = "一太…

Lacoocanでのモジュール設定パス

ずっとわからず苦労してた。 LacoocanはRubyが使えるものの、導入されているライブラリが少なく独自のライブラリを入れようとしてたが、 何度試してもできずに苦労していた。 結論からすると、アクセス対象のRubyファイルは拡張子を「.cgi」にしなきゃいけな…

環境設定、パスなど

キャッシュになってたので、転載。●rubyのちょっとしたことrubyを使っていてちょっと疑問に思ったこと、使いやすくするためにした工夫、 どうでもいいようなことをまとめました。 ●requireはどこのパスから読み込む?巨大なプログラムを組むとなると、当然共…

WWW::Mechanizeのインストール

疑似ブラウザ的にWebサイトを扱えるモジュール。コマンドは、 gem install mechanize番号聞かれたら1を入力した。 Bulk updating Gem source index for: http://gems.rubyforge.org Install required dependency hpricot? [Yn] y Select which gem to instal…

String#sliceの挙動

当たり前っちゃあたりまえだけど、メモ 戻り値は「切り出した値」。これは破壊的メソッドを使ったときも同じ。 line ="0123456" str = line.slice(0, 3) puts str =>012 破壊的メソッドを使ったときの、自分の値は「切り出された残り」 line ="0123456" line…

UTF-8環境で半角英数字前後の半角スペースを除去する方法

Webなどでは見やすさのために英数字の前後に半角スペースを挿入していることがあるが、 そんな文章から半角スペースを取るプログラムを組みたかった。 たとえば 「Java なら Eclipse、.NET なら Visual Studio というツールがあります」なら 「JavaならEclip…

UTF-8でも文字化けさせずにコンソールでデバッグする方法

Eclipseはコンソール出力がOSに依存してしまう(WindowsはSJIS)なので、 Rubyでputsをやると文字化けしてしまう。 デバッグ時は、SJISに変換してやるしかないようだ。 require 'kconv' str = "ほげほげ" puts str.tosjis こうやれば、「ほげほげ」が出力さ…

プライマリーキーを「ID」以外にする方法

def self.up create_table :testsun do |t| t.column :ex_word, :primary_key t.column :ex_word_type, :string end end これではエラー。 「id」という名前を無効にしてやらないといけない。 def self.up create_table :testsun, {:id => false} do |t| t.c…

ディレクトリがなかったら作成する

FileUtils.mkdir_p(path) unless FileTest.exist?(path) ディレクトリの作成はDir.mkdirでもいいんだけど、 FileUtils.mkdir_pを使うと階層化されたパス(/user/hoge/ababa といった形式)も渡せるのでこれが便利。 この場合、「user」「hoge」「ababa」がな…

時間のフォーマット

現在時刻をYYYYMMDDHHMISS形式で表示するには t = Time.new t.strftime("%Y%m%d%H%M%S") puts t

クラスメソッドの書き方

class Foo def Foo.bar puts "hello" end end と定義(ファイル名は「foo.rb」)。これを他のクラスから require "foo" Foo.bar とすると、「hello」が出力される。

File、あるいはDirの存在チェック

たとえば「hoge」というファイルをチェックするときは FileTest.exist?("hoge") で。戻り値はboolean。ファイルもディレクトリも同じ。

 自動選択するセレクトボックス

document.formname.selectname.options.selectedIndex = i;

Wordファイルに埋め込まれている画像の元画像を抜きとる方法

・Wordを1度、「Webページとして保存」する。 ・フォルダができる。 ・その中に画像ファイルがある。元画像と縮小版が手に入る。

逆順ソート

Array#sortを逆順にするには ary.sort{|i| -i } が正解。 Array#reverseは、現在の並び順を真逆にするだけで、ソートはしていない。

スペジェネの表示件数(Special Generator)

Controllerのそれっぽいクラスを開けると「:per_page」という変数がある。ここの数字を変えればOK。 デフォルトは10。表示件数が多いと重くなる。

CSSアドオン

窓の杜 - 【NEWS】スタイルシートのソース表示に特化したFirefox拡張「View formatted source」 http://www.forest.impress.co.jp/article/2007/06/11/vfs.html

Firefoxの場合

eventではなくeを使うのがみそ。 また、e.keyCodeとe.charCodeがある。IMEを効かせていると取れる値が違うので注意。 <script type="text/javascript"> document.onkeypress = key_Press function key_Press(e){ keycode = e.which; alert(keycode); keychar = String.fromCharCode(keycode)</script>…

キーボード入力文字を表示するJavaScript

<html> <script type="text/javascript"> document.onkeypress = key_Press function key_Press(e){ alert(String.fromCharCode(event.keyCode)); } </script> <body bgcolor="#ffffff"> </body> </html>

メモ

aaa = text_info.text[i] p aaa if (/\W\s+\.?\w/ =~ aaa) aaa.scan(/\W\W\s+\.?\w/){ |matched| puts matched buf = matched.gsub(/\s+/, "") aaa = aaa.sub(matched, bur) } end if (/\w\s+\W/ =~ aaa) aaa.scan(/\w\s+\W\W/){ |matched| puts matched buf…

中国語で表示させる方法

「eclipse/configuration/config.ini」を開き、 「# End of file marker - must be here」とコメントされている行の上に、 「osgi.nl=zh」と追加する。http://127.0.0.1:53186/help/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html…

全角文字を半角文字に変換するプログラム

require 'jcode' aaa = ("ABC") puts aaa.tr('A-Z', 'A-Z') ただし、エディタならびにRubyの文字コードを統一(UTF-8など)しておく必要あり。

テキストファイルを固定文字数で切って、行番号をつけるプログラム

抜粋 #!ruby -Ks head_figure = 3 text_length = 80 - head_figure - 2 while line = gets do line.chomp! lines = Array.new while line.gsub!( /^.{#{text_length}}/, '' ) do lines << $& end lines << line # 行番号をつけて出力 result = '' lines.each…