honapon
@honapon

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【初心者】Ruby メモアプリの作成でCSVのファイル作成が上手くいかない

【初心者】Ruby メモアプリの作成でCSVのファイル作成が上手くいかない

現在Rubyで初めてコードを書く練習としてメモアプリを作成しています。
①新規メモを作成、②既存メモを編集と2つの機能を実装しようとしていますが
まず①新規メモを作成 において
CSVのファイル作成+メモの入力が
上手く出来ない状態となっています。
ファイルは作成されず、
何回か試して2回だけファイルが作成されたのですが(これも何故だか不明です)
その際メモ部分も数字しか反映されなかったりと上手くいっていない状況です。
コードの問題点についてアドバイス頂けると嬉しいです。

こちらがコードです。(既存メモの編集の機能は未作成です。)

  require "csv"  

 puts "1(新規でメモを作成)2(既存のメモを編集する)"
  memo_type = gets.to_s
  puts "選択:" + memo_type
  input_number = memo_type.chomp
 
  
  if input_number == "1"
  puts "新規でメモを作成します。拡張子を除いたファイル名を入力してください。"
  file_name = gets.chomp
  
  puts"メモの内容を記入して下さい。Ctrl+Dで保存します。"
  imput_memo = STDIN.read
  memo = imput_memo.chomp
  
  CSV.open("#{file_name}.csv" , "w") do |csv|
  csv.puts ["#{memo}"]
  end
 
  elsif input_number == "2"
  puts "既存のメモを編集します。拡張子を除いた既存ファイル名を入力してください。"


  else
  puts "1か2の数字を入力してください"
  end

現在実装したい機能について日本語で手順を考えながらそれに合致したコードを
調べ、入力しています。

0

1Answer

そのコードを(3行目に入っている全角スペースを消して) memo.rb に保存し、実行して以下のように入力したところ、期待どおり my_memo.csv が作成されました。

% ruby memo.rb
1(新規でメモを作成)2(既存のメモを編集する)
1
選択:1
新規でメモを作成します。拡張子を除いたファイル名を入力してください。
my_memo
メモの内容を記入して下さい。Ctrl+Dで保存します。
Hello【ここで Ctrl+D】

コードを見てもファイル作成に関する問題点は特になさそうです。(質問とは関係ありませんが、 csv.puts ["#{memo}"] で書き出しているせいで何を入力しても1レコードしかない CSV になるのは問題と言えそうです。)

どう実行して何を入力したか書いていただければ何か分かるかもしれません。

0Like

Comments

  1. @honapon

    Questioner

    おっしゃって頂いたように全角スペースを消して再度実行したところ、ファイルが作成されました!(ターミナル上での実行の仕方も間違えていたみたいです。)丁寧にお答え頂きありがとうございます。
    引き続き既存のメモの編集についてはCSV.open("#{file_name}.csv" , "w") の「w」の部分を「a」に変えて作成したいと思います。
    アドバイス頂いたCSVのレコードについても今回勉強したいと思います!

Your answer might help someone💌