現在Rubyで、キーボードから入力した値をCSVファイルに書き込むためのプログラムを作っています。コードは以下の通りです。
require "csv" CSV.open('test.csv','w') do |test| def make_memo puts "拡張子を除いたファイルを入力していください。" text = gets.to_s end def edit_memo puts "編集内容を入力してください。" edit_text = gets.to_s end while true puts "1(新規でメモを作成)、2(メモを編集する)、3(終了する)のいずれかをを入力してください。" memo_type = gets.chomp if memo_type == "1" make_memo elsif memo_type == "2" edit_memo elsif memo_type == "3" puts "処理を終了します。" break else puts "1または2または3を入力してください。" end end end require "csv" CSV.foreach("test.csv") do |row| p row end
これでは、キーボードから入力は値は入力できるのですが、CSVファイルには書き出されません。
test <<
を使うんだろうと思い、色々試しましたが、以下のエラーが出ました。
・def make_memoの中にtest << text → ``test': wrong number of arguments (given 0, expected 2..3) (ArgumentError)`
・if文の中に test << text → undefined local variable or method 'text' for main:Object
・if文の中にtest << make_memo.text → 下と同じエラー
・if文の中にtest << make_memo → <<': undefined method map' for "falmb":String (NoMethodError)
"falmb"は、キーボードに入力した値です。
エラーの内容は調べればすぐ出ると思いますが、CSVへキーボードから入力した値の書き込みをするにはどうすればいいかが分かりません。
Ruby csv で調べたんですけど、解決に至らずでした。
どこを直したらいいでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。