Hatena::Grouparaistudy

czk-htnの日記

2006-08-11

[] 10. 基本入出力

10.1 IOオブジェクトとは

10.2 ファイルのオープンとクローズ

  • File.newでファイルを作成
  • File.openでもファイルを作成できる
    • ロックと関連づけて呼び出すとFileを引数としてブロックを実行し、ファイルを閉じる

自分自身の中身を出力するサンプル。

% ruby sample01.rb
File.open($0, "r") { |f|
  print while f.gets
}

10.3 ファイルの読み書き

  • IOクラスではKernelモジュールに定義されているIOメソッドは全て使える
  • 加えて便利なアクセスメソッドが定義されている
    • each_line
    • foreach
    • etc...

each_lineで書き直してみた。

% ruby sample02.rb
File.open($0, "r") { |f|
    f.each_line { |line|
        puts line
    }
}

foreachで書き直してみた。

% ruby sample03.rb
File.foreach($0) { |line|
    puts line
}
  • ファイル出力時のきまり

10.4 ネットワークとのやり取り

  • TCPSoketクラスなどを利用してソケット通信が可能
    • require 'socket'
  • FTPHTTPなど高レベルなメソッドも提供されている
    • require 'net/http'

はてなダイアリーに接続してレスポンスヘッダーを出力してみた。

require 'net/http'
h = Net::HTTP.new('d.hatena.ne.jp')
resp, data = h.get('/')
resp.each { |key,val|
  puts "#{key} = #{val}"
}
% ruby sample04.rb
vary = Accept-Encoding
connection = close
content-type = text/html; charset=euc-jp
date = Thu, 10 Aug 2006 22:05:59 GMT
server = Apache/1.3.27 (Unix)  (Vine/Linux) mod_perl/1.29
transfer-encoding = chunked

[][] Ruby用のvimを設定

~/.vimrcにこんな設定をいれてみた。

% vim ~/.vimrc
filetype on
filetype indent on
filetype plugin on
% sudo gem install vim-ruby
% vim-ruby-install.rb

Possible Vim installation directories:
        1) /Users/kazuki/.vim
        2) /opt/local/Vim.app/Contents/Resources/vim/vimfiles

Please select one (or anything else to specify another directory): 1
% cd /Applications/DarwinPorts/Vim/Vim.app/Contents/Resources/vim/runtime/macros
% cp matchit.txt ~/.vim/doc/
% mkdir -p ~/.vim/doc/
% cp matchit.txt ~/.vim/doc/
% cp matchit.vim ~/.vim/plugin

Rubybegin~endで自動的にインデントが調整されるようになった。%で対応するbegin~endにジャンプするようになった。うれしい。

AsepAsep2012/04/22 06:57If not for your writing this topic could be very convoltued and oblique.

pndlkjlonpndlkjlon2012/04/23 02:24K8uZf6 <a href="http://iliahahgbbgm.com/">iliahahgbbgm</a>

ycupjcycupjc2012/04/23 10:53aeQFUI <a href="http://upggvnmjrgwz.com/">upggvnmjrgwz</a>

トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20060811