puts "################出入力###################"
puts "引数に1 2 3を渡す"
expression = ARGV.join(' + ') #joinで文字列の結合
total = ARGV.inject(0){|subtotal, arg| #inject(0)はsubtotalの初期値で、argに要素を渡します。
p subtotal
p arg
subtotal + arg.to_i
}
puts expression #=>1 + 2 + 3
puts total #=>6
puts "################ファイル###################"
i = 0
File.open("opentext.txt"){|text| #openでファイルを開きます
puts "読み込み開始します"
contents = text.read
print contents + "\n"
puts "読み込み終了します"
}
puts "################ファイル###################"
File.open("opentext.txt",'a'){|text|
puts "書き込み開始します"
text.puts Time.now
puts "書き込み終了します"
}
puts "################ファイル###################"
File.open("opentext2.txt",File::WRONLY|File::CREAT){|text|
puts "書き込み開始します"
text.puts Time.now
puts "書き込み終了します"
}
puts "################ファイル###################"
File.open("opentext2.txt"){|text|
puts "読み込み開始します"
text.each_line do |line| #一行ずつ読み込み ブロックに行の内容を渡す。
p text.lineno #現在の行番号
if(line == "\n")
puts "\\nです"
end
p line#.chomp #現在の行を表示chompは改行を削除します
end
puts "読み込み終了します"
}
puts "################ファイル###################"
File.open("opentext2.txt",'r+b'){|text|
print "#{text.pos}" #ファイルポインタの現在の位置を整数で返します
print text.gets
print "#{text.pos}"
puts bytes = text.read(3)
print "#{text.pos}:\n"
text.pos -= 3
print "#{text.pos}:\n"
text.write bytes
print "#{text.pos}"
text.pos = 0
print text.gets #1行取得
print "#{text.pos}:"
text.seek(-3,File::SEEK_END)#最後の行へ移動し3バイト戻る
print "#{text.pos}"
puts text.getc #1バイト読み込み
print "#{text.pos}"
p text.getc
print "#{text.pos}"
#readcharは読み取るバイトが存在しないとき例外を発生することを除き同じ動き
puts text.readchar #読み取り行がない場合例外
}
puts "################ファイル###################"
p $stdin
p $stdout
p $stderr
$stderr.printf("%X\n",0xcafe)
puts "################ファイル###################"
File.open("opentext2.txt",'w'){|text|
p text
$stdout = text #標準出力先をコマンドラインから指定ファイルに変更
p $stdout
puts "Welcome to Glubbdubdrib"
p text
p STDOUT
$stdout = STDOUT #標準出力をもとにもどす
p $stdout
}
puts "################ファイルIO###################"
require 'stringio'#stringioの読み込み、StringIOを使うため
buffer = String.new#StringIOで使うStringオブジェクト bufferとはデータの蓄積先
sio = StringIO.new(buffer)#StringIOに渡す
p $stdout
$stderr = $stdout = sio#出力先を変更
puts "untuh"
warn "outed"
$stdout = STDOUT
puts buffer
puts sio
$stderr = STDOUT
puts "引数に1 2 3を渡す"
expression = ARGV.join(' + ') #joinで文字列の結合
total = ARGV.inject(0){|subtotal, arg| #inject(0)はsubtotalの初期値で、argに要素を渡します。
p subtotal
p arg
subtotal + arg.to_i
}
puts expression #=>1 + 2 + 3
puts total #=>6
puts "################ファイル###################"
i = 0
File.open("opentext.txt"){|text| #openでファイルを開きます
puts "読み込み開始します"
contents = text.read
print contents + "\n"
puts "読み込み終了します"
}
puts "################ファイル###################"
File.open("opentext.txt",'a'){|text|
puts "書き込み開始します"
text.puts Time.now
puts "書き込み終了します"
}
puts "################ファイル###################"
File.open("opentext2.txt",File::WRONLY|File::CREAT){|text|
puts "書き込み開始します"
text.puts Time.now
puts "書き込み終了します"
}
puts "################ファイル###################"
File.open("opentext2.txt"){|text|
puts "読み込み開始します"
text.each_line do |line| #一行ずつ読み込み ブロックに行の内容を渡す。
p text.lineno #現在の行番号
if(line == "\n")
puts "\\nです"
end
p line#.chomp #現在の行を表示chompは改行を削除します
end
puts "読み込み終了します"
}
puts "################ファイル###################"
File.open("opentext2.txt",'r+b'){|text|
print "#{text.pos}" #ファイルポインタの現在の位置を整数で返します
print text.gets
print "#{text.pos}"
puts bytes = text.read(3)
print "#{text.pos}:\n"
text.pos -= 3
print "#{text.pos}:\n"
text.write bytes
print "#{text.pos}"
text.pos = 0
print text.gets #1行取得
print "#{text.pos}:"
text.seek(-3,File::SEEK_END)#最後の行へ移動し3バイト戻る
print "#{text.pos}"
puts text.getc #1バイト読み込み
print "#{text.pos}"
p text.getc
print "#{text.pos}"
#readcharは読み取るバイトが存在しないとき例外を発生することを除き同じ動き
puts text.readchar #読み取り行がない場合例外
}
puts "################ファイル###################"
p $stdin
p $stdout
p $stderr
$stderr.printf("%X\n",0xcafe)
puts "################ファイル###################"
File.open("opentext2.txt",'w'){|text|
p text
$stdout = text #標準出力先をコマンドラインから指定ファイルに変更
p $stdout
puts "Welcome to Glubbdubdrib"
p text
p STDOUT
$stdout = STDOUT #標準出力をもとにもどす
p $stdout
}
puts "################ファイルIO###################"
require 'stringio'#stringioの読み込み、StringIOを使うため
buffer = String.new#StringIOで使うStringオブジェクト bufferとはデータの蓄積先
sio = StringIO.new(buffer)#StringIOに渡す
p $stdout
$stderr = $stdout = sio#出力先を変更
puts "untuh"
warn "outed"
$stdout = STDOUT
puts buffer
puts sio
$stderr = STDOUT
0 件のコメント:
コメントを投稿