Newer
Older
Ruby / j2239_last.rb
# 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