diff --git a/last/j2106_last.rb b/last/j2106_last.rb index 1593953..7f5036b 100755 --- a/last/j2106_last.rb +++ b/last/j2106_last.rb @@ -1,61 +1,131 @@ #!usr/bin/env ruby # -*- coding: utf-8 -*- -date = [] -hash = [] -today = 1 +#このプログラムは、メモづくりを簡単に行えるプログラムがあればいいなと思い、作成した。 +#このテーマにした理由は、自分の親がいつも出かけるときにメモを置いて行くのだが、時間がなくて書けなかったり、メモ帳がなかったりして書けないことがあったりしたため、そのような場合に、すぐに書けて、メモ帳代わりになるプログラムがあったら便利だろうなと思ったから。 +#また、自分は一日の予定(to do)をよくホワイトボードに書いているのだが、置く場所がなく、じゃまだったりすることがあるので、パソコン内に保存しておけたら楽だと思った。 +#だが、今まで、プログラムがずっと動いていないと、入力した内容が保持されないと思っていたので、他のプログラムを作る予定だった。でも、rubyではcsvファイルやtxtファイルの読み込みができるので、もしかしたら書き込みも可能なのかもしれないと考え、やってみたらできたので、これを使ってプログラムを作ってみることにした。 -puts "日記" +#実装したい機能 +#・メモの記入 +#・書いたメモの保存 +#・箇条書きonとoffの切り替え +#・記入済みのメモの表示 +#・to_doでの、リスト内の完了したことの消去 +#・to_doで、やることが全て完了したときの、to_doの自動消去 +#・メモの細かいデータの保存(書いた日付など) +#・メモがいつになったら表示される/消去されるなどの設定 +#・不要になったメモの削除 +#・複数のメモの作成 +#・表示時、削除時での、メモが存在しない場合のメッセージ +#・メモの検索(年、月、日、内容など) + +#結果...悩みを解決できるプログラムは作れたと思う。だが、これは必要最低限で、まだ普通のメモ帳と変わらないレベルまでしか作れていないので、普通のメモ帳よりこのプログラムが便利になるように、まだ実装できていない機能を実装したい。 + +#データの保存のやり方がわからなかった頃は、日記のプログラムを作る予定だった(というか作っていた)。だが、作っていくうちに、日記が書けるだけで、便利機能が無いようなプログラムになりそうな気がしたので、メモのプログラムを作ることにした。変数名や配列名、プログラムの中身がこのプログラムと比べ物にならないくらいの状態になったまま放置されている。~/Ruby/diary.rb + +to_do = [] + while true - choice = gets.chomp - if choice == "1" - year = Time.now.year - mon = Time.now.mon - day = Time.now.day - data = "#{year}_#{mon}_#{day}" - for i in 0..(date.length - 1) do - if date[i].include?(data) - puts "今日の日記はもう書き終わっています。" - today = 2 - break + puts "メモの作成\nメモを見る\nメモの削除\n1or2or3" + sentaku = gets.chomp + if sentaku == "1" + puts "1.to doリスト作成\n2.ただのメモ\nメモの種類を選択してください。1or2" + memo_kind = gets.chomp + puts "次に、箇条書きをするかを入力してください。on or off" + kazyougaki = gets.chomp + if memo_kind == "1" + file_to_do = File.open('to_do.txt',"w+") + puts "内容を書き込んでください。終わる場合はendと入力してください。" + num = 1 + while true + if kazyougaki == "on" + print "・" + end + printf("%d:",num) + naiyou = gets.chomp + if naiyou == "end" + break + else + file_to_do.printf("%d:",num) + num += 1 + if kazyougaki == "on" + file_to_do.print "・" + end + file_to_do.printf("%s\n",naiyou) + end end + file_to_do.close + elsif memo_kind == "2" + puts "内容を書き込んでください。終わる場合はendと入力してください。" + file_memo = File.open('memo.txt',"w+") + while true + if kazyougaki == "on" + print "・" + end + naiyou = gets.chomp + if naiyou == "end" + break + else + if kazyougaki == "on" + file_memo.print "・" + end + file_memo.printf("%s\n",naiyou) + end + end + file_memo.close end - if today == 2 - redo - end - puts "入力してください。" - naiyou = gets.chomp - puts "次に、今日の満足度を入力してください。" - while question != "yes" - manzoku = gets.to_i - if manzoku < 30 - puts "この日記は「その他」からのみ閲覧することができるようになります。\nよろしいですか?" + redo + elsif sentaku == "2" + puts "どちらのメモを見ますか?\nto_do or memo" + begin + see = gets.chomp + if see == "to_do" + puts File.read('to_do.txt') + puts "終了したものは消すことができます。\n消したいものの番号を入力してください。終わる場合はendと入力してください。" while true - question = gets.chomp - if question == "yes" + File.readlines("to_do.txt").each do |line| + to_do << line.chomp + end + if to_do.length == 0 + File.delete("to_do.txt") + puts "to_doの内容が全て終了したため、to_doが削除されました。" break - elsif question == "no" - puts "もう一度入力してください。" + end + finish = gets.chomp + if finish == "end" break else - puts "もう一度入力してください。" + to_do.delete_at(finish.to_i - 1) + file_to_do = File.open('to_do.txt',"w") + file_to_do.puts to_do + file_to_do.close + puts File.read('to_do.txt') + to_do = [] redo end end - break - else redo + elsif see == "memo" + File.readlines("memo.txt").each do |line| + p line.chomp + end end + rescue Errno::ENOENT + puts "そのメモは存在しないか、すでに消された可能性があります。" end - date << data - printf("%d年 %d月 %d日\n%s\n",year,mon,day,naiyou) - redo - elsif choice == "2" - p hozon - redo - elsif choice == "3" - break - else - redo + elsif sentaku == "3" + puts "どちらのメモを削除しますか?\nto_do or memo" + begin + delete = gets.chomp + if delete == "to_do" + File.delete("to_do.txt") + elsif delete == "memo" + File.delete("memo.txt") + end + rescue Errno::ENOENT + puts "そのメモは存在しないか、すでに消された可能性があります。" + end end + redo end diff --git a/memo.rb b/memo.rb index b0ce970..cccc6b7 100755 --- a/memo.rb +++ b/memo.rb @@ -1,8 +1,28 @@ #!usr/bin/env ruby # -*- coding: utf-8 -*- -to_do = [] -hash = {} +#このプログラムは、メモづくりを簡単に行えるプログラムがあればいいなと思い、作った。 +#このテーマにした理由は、自分の親がいつも出かけるときにメモを置いて行くのだが、時間がなくて書けなかったり、メモ帳がなかったりして書けないことがあったりしたため、そのような場合に、すぐに書けて、メモ帳代わりになるプログラムがあったら便利だろうなと思ったから。 +#また、自分は一日の予定(to do)をよくホワイトボードに書いているのだが、置く場所がなく、じゃまだったりすることがあるので、パソコン内に保存しておけたら楽だと思った。 +#だが、今まで、プログラムがずっと動いていないと、入力した内容が保持されないと思っていたので、他のプログラムを作る予定だった。でも、rubyではcsvファイルやtxtファイルの読み込みができるので、もしかしたら書き込みも可能なのかもしれないと考え、やってみたらできたので、これを使ってプログラムを作ってみることにした。 + +#実装したい機能 +#・メモの記入 +#・書いたメモの保存 +#・箇条書きonとoffの切り替え +#・記入済みのメモの表示 +#・to_doでの、リスト内の完了したことの消去 +#・to_doで、やることが全て完了したときの、to_doの自動消去 +#・メモの細かいデータの保存(書いた日付など) +#・メモがいつになったら表示される/消去されるなどの設定 +#・不要になったメモの削除 +#・複数のメモの作成 +#・表示時、削除時での、メモが存在しない場合のメッセージ +#・メモの検索(年、月、日、内容など) + +#結果...悩みを解決できるプログラムは作れたと思う。だが、これは必要最低限で、まだ普通のメモ帳と変わらないレベルまでしか作れていないので、普通のメモ帳よりこのプログラムが便利になるように、まだ実装* +****** +to_do = []****** while true puts "メモの作成\nメモを見る\nメモの削除\n1or2or3" @@ -13,10 +33,12 @@ puts "次に、箇条書きをするかを入力してください。on or off" kazyougaki = gets.chomp if memo_kind == "1" - file_to_do = File.open('to_do.txt',"a+") + file_to_do = File.open('to_do.txt',"w+") puts "内容を書き込んでください。終わる場合はendと入力してください。" + num = 1 while true if kazyougaki == "on" + printf("%d:",num) print "・" end naiyou = gets.chomp @@ -24,17 +46,17 @@ break else if kazyougaki == "on" + file_to_do.printf("%d:",num) + num += 1 file_to_do.print "・" - file_to_do.printf("%s\n",naiyou) - else - file_to_do.printf("%s\n",naiyou) end + file_to_do.printf("%s\n",naiyou) end end file_to_do.close elsif memo_kind == "2" puts "内容を書き込んでください。終わる場合はendと入力してください。" - file_memo = File.open('memo.txt',"a+") + file_memo = File.open('memo.txt',"w+") while true if kazyougaki == "on" print "・" @@ -45,10 +67,8 @@ else if kazyougaki == "on" file_memo.print "・" - file_memo.printf("%s\n",naiyou) - else - file_memo.printf("%s\n",naiyou) end + file_memo.printf("%s\n",naiyou) end end file_memo.close @@ -59,25 +79,28 @@ begin see = gets.chomp if see == "to_do" - num = 1 - File.readlines("to_do.txt").each do |line| - printf("%d:%s",num,line.chomp) - to_do << line.chomp - num += 1 - end - num = 1 - for i in to_do - hash.store(i,num) - num += 1 - end + puts File.read('to_do.txt') puts "終了したものは消すことができます。\n消したいものの番号を入力してください。終わる場合はendと入力してください。" while true + File.readlines("to_do.txt").each do |line| + to_do << line.chomp + end + if to_do.length == 0 + File.delete("to_do.txt") + puts "to_doの内容が全て終了したため、to_doが削除されました。" + break + end finish = gets.chomp if finish == "end" break else - file_to_do = File.open('to_do.txt',"w+") - finish + to_do.delete_at(finish.to_i - 1) + file_to_do = File.open('to_do.txt',"w") + file_to_do.puts to_do + file_to_do.close + puts File.read('to_do.txt') + to_do = [] + redo end end redo @@ -85,10 +108,6 @@ File.readlines("memo.txt").each do |line| p line.chomp end - elsif finish == "memo" - File.readlines("memo.txt").each do |line| - p line.chomp - end end rescue Errno::ENOENT puts "そのメモは存在しないか、すでに消された可能性があります。" diff --git a/to_do.txt b/to_do.txt deleted file mode 100644 index 4743767..0000000 --- a/to_do.txt +++ /dev/null @@ -1,5 +0,0 @@ -・waef -・awef -・waef -・wagewaf -・end