依然是《Ruby基礎教程》中的例子,這回程序需要根據輸入的參數進行處理,我們在用irb命令的時候,直接在程序文件名後面加上參數就可以了,那麼假如要使用Rubymine等IDE的時候呢?
pattern = Regexp.new(ARGV[0])
filename = ARGV[1]
File.open(filename) do |file|
file.each_line do |line|
if pattern =~ line
print line
end
end
end
其實IDE肯定要比寫命令高效和準確的,只需按照下面這樣設置就可以了。
然後進入到運行和Debug參數設置頁面,如下進行設置。
我們在設置完成之後發現還是會報錯,原因是參數中的日文編碼是GBK的,而我們程序中的文字編碼是UTF-8的,所以對程序中接收到的參數使用encode方法進行編碼轉換之後就可以正常進行了。修改之後我的程序是這樣的:
Encoding.default_external = Encoding.find('utf-8')
pattern = Regexp.new(ARGV[0].to_s.encode('utf-8'))
filename = ARGV[1]
countS = 0
File.open(filename) do |file|
file.each_line do |line|
if pattern =~ line
print line
countS += 1
end
end
end
print "含有" << ARGV[0].to_s.encode('utf-8') << "的行數爲:" << countS.to_s
當然還有一些可以完善的地方,歡迎大家拍磚。