# coding: utf-8 #このプログラムは買うものを何回も聞いて気まずい雰囲気にならないようにするためのプログラムです #忘れん坊の人を助けるためのプログラムです #ファイルが削除されてしまっても自動的に復活します #このようなプログラムは色んな機能が追加できそうだから→買うものを忘れたくないから→買うものを忘れてまた買いに行くことになったときの喪失感が激しいから #ジャンルごとにくべつする→忘れてはいけない買うものには期限を設定できるようにしたい→賞味期限の管理もしたい→今あるものを買わないように同じものが入力されたら警告を表示する #一応完成はしたけど悩みを解決できるかどうかと言ったらイマイチだった。もう少し実用的な機能があれば暮らしの中で役に立つと思った #アイデアは、できるかもわからないけど掲示板システムなども作りたい require 'csv' if File.exist?('kaumono.csv') data = CSV.read("kaumono.csv",:headers => true) if File.empty?("kaumono.csv") puts"書き込みます" CSV.open('kaumono.csv','a') do |nai| nai << ["kaumono","bikou"] end else while true puts"1 買うものを確認" puts"2 買う物を編集" puts"3 内容リセット" puts"4 選択して削除" puts"5 終了" input=gets.to_i if input == 1 n=0 data = CSV.read("kaumono.csv",:headers => true) #kaumono.each do |kaumono| #kau = kaumono[n] #tuisin = kaumono[n] data.each{|row| printf("%d買う物は%s\n",n+=1,row["買う物"]) printf("備考は%s\n",row["備考"]) printf("-----------------------\n")} #end elsif input == 2 hairetu = [] data = CSV.read("kaumono.csv",:headers => true) #data.each{|row| hairetu << row["買う物"] # kaunda = CSV.open('kaumono.csv') puts"何を買いますか" kaitai = gets.chomp #if /#{kaitai}/=~hairetu.join #puts"重複しています" # break # end zyuufuku=false data.each do |kaunda| if kaunda.field?(kaitai) #puts"重複しています" zyuufuku=true break end end if zyuufuku puts"重複しています" else puts"備考は" tuisin = gets.chomp CSV.open('kaumono.csv','a') do |kaumonn| kaumonn << [ kaitai , tuisin] #変数から取り出して書き込む end end elsif input == 3 File.truncate("kaumono.csv", 0) #ファイルの中身を消す break elsif input == 4 puts"消したい物の名前を入力" puts"他の項目と共通しているものも削除されます" kesitai = gets.chomp csv_table = CSV.table("kaumono.csv") #csv_table.by_row! # 行ごとに見ていく csv_table.delete_if{|row| row.field?(kesitai)} # 特定のデータを含む行を削除 CSV.open("kaumono.csv", "w") do |csv| csv_table.each do |row| csv.puts row end end elsif input == 5 break end end end else puts"ファイルが見つかりません" puts"なので作成します" nanndemo = File.new('kaumono.csv','a') end