CGIを作る際のファイルを読み書きについてです。 一行の内容はタブ区切りの値になっていると仮定します。
ファイルを読み込み、一行ずつ処理するのは以下のようになります。
File.open( "ファイル名", "r" ) do |file|
file.each do |line|
a,b,c = line.chomp.split( /\t/ )
(処理)
end
end
ハッシュの配列を書き込むのは以下のようにします。
File.open( "ファイル名", "w" ) do |file|
arr.each do |item|
file.puts( [ item['a'], item['b'], item['c'] ].join( "\t" ) )
end
end
追加で書き込むときはオープンのモードが"a"になります。
File.open( "ファイル名", "r+" ) do |file|
file.each do |line|
a,b,c = line.chomp.split( /\t/ )
(処理)
end
file.rewind
file.truncate( 0 )
arr.each do |item|
file.puts( [ item['a'], item['b'], item['c'] ].join( "\t" ) )
end
end
File.open( "ファイル名", "r" ) do |file|
file.flock( File::LOCK_SH ) #共有ロック
file.each do |line|
a,b,c = line.chomp.split( /\t/ )
(処理)
end
end
File.open( "ファイル名", "w" ) do |file|
file.flock( File::LOCK_EX ) #排他ロック
arr.each do |item|
file.puts( [ item['a'], item['b'], item['c'] ].join( "\t" ) )
end
end
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 13 | 体育の日 | |||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
XML HACKS
万能のフォーマットをどう生かすか?
★★★★☆
SQLite入門 すぐに使える軽快・軽量データベース・エンジン
SQLite のすべてがわかる、充実の1冊!!
★★★★★
Unixバックアップ&リカバリ
サーバー管理者は必読!自信と安心をこの本で。
★★★★☆
Rubyデスクトップリファレンス
タイトル通り、「あ、これなんだっけ?」の強い味方です。
★★★★★
入門 Qt 4 プログラミング
Qt4 開発者必携
★★★★★
Linuxネットワーク管理
TCP/IPの基礎から様々な管理まで、実用的なものがまとまった1冊です。
★★★☆☆
make 改訂版
make様サマですね
★★★★☆
Binary Hacks —ハッカー秘伝のテクニック100選
バイナリアンに憧れてます。
★★★★☆
Copyright © 2025 Linux-Life.net