怠惰な人の勉強記録

個人的な勉強の記録を残します。

5月31日進捗

前回に引き続き同じ課題をやっている。

ネットを使いいろいろと調べながらやっていたが、解決できないエラーが出たので初めてTeratailを使って質問をした。https://teratail.com/questions/266467?modal=q-comp

質問の仕方が難しい。怒られそうで怖いが先に進めないのは困るので返信を待つ。

やはり基本的なことがわかっていないと難しいことが多いのでProgate に1月登録することにした。復習って大事だなぁと思った。ぼんやり理解していたことがはっきりわかる。何となくで書いているコードの内容がわかるのでとても良い。とりあえず演習と並行してやっていくことにする。一応記録のために載せておく。あとで見返して原因がわかるようになります。

  def searchBookInfo
    book_info = BookInfo.new(""""0nil)

    print "\n"
    #print 'キー'
    #print gets.chomp
    print '書籍名:'
    book_info.title = gets.chomp.encode('shift_jis').to_s
    print '著者名:'
    book_info.author = gets.chomp.encode('shift_jis').to_s
    print 'ページ数:'
    book_info.page = gets.chomp.to_i
    print '発刊年:'
    year = gets.chomp.to_i
    print '発刊月:'
    month = gets.chomp.to_i
    print '発刊日:'
    day = gets.chomp.to_i
    book_info.publish_date = Date.new(yearmonthday)

    @book_infos[key= book_info

    search = book_info

    @book_infos.each do |key, info|
      search_flag = 1 # 検索条件と一致しているか
      input_check = 0 # 検索条件が未入力か

      if search.title != ''
        search_flag = 0 if search.title =~ /[^"#{info.title}"]/

      else
        input_check += 1
      end
      if search.author != ''
        search_flag = 0 if search.author != info.author
      else
        input_check += 1
      end
      if search.page != 0
        search_flag = 0 if search.page != info.page
      else
        input_check += 1
      end
      if !search.pdate.nil?
        search_flag = 0 if search.pdate != info.pdate
      else
        input_check += 1
      end

      # 比較が全て一致した蔵書データをハッシュに格納する
      # 検索条件が全て未入力の場合は格納しない
      found_book[key= info if search_flag == 1 && input_check < 4
    end
    puts "\n------------------------------"
    if !found_book.empty?
      # 比較が全て一致した蔵書データを表示する
      found_book.each do |info|
        print info.toFormattedString
        puts "\n------------------------------"
      end
    else
      print '条件に一致する蔵書はありません'
      puts "\n------------------------------"
    end
  end