#!/usr/bin/env ruby # coding: utf-8 Encoding.default_external = 'utf-8' require 'csv' require 'cgi' c = CGI.new(:accept_charset => "UTF-8") #データベース読み取り処理は全く同じ db = CSV.read("syllabus.csv", headers: true) opts = db["開講時期"].uniq.collect {|j| ""}.join("\n") # HTMLヘッダと入力フォーム出力 print < 科目検索

科目検索

検索条件を入力して下さい。

開講時期
担当教員

EOF # 検索パターンはHTMLフォームへの入力値を取得する term = c["jiki"] whom = c["kyoi"] if term>"" or whom>"" # 検索条件の最低1つが入力されていたら if term > "" # 開講時期指定に何か文字列を入れたなら ptn = Regexp.new(term) # 文字列を正規表現に変換 db = db.select {|row| ptn =~ row["開講時期"]} end if whom > "" # 担当教員指定に何か文字列を入れたなら ptn = Regexp.new(whom) # 文字列を正規表現に変換 db = db.select {|row| ptn =~ row["担当教員"]} end puts("

該当科目一覧

") printf("

検索語: 開講時期=[%s],担当教員=[%s]

", term, whom) puts("") db.each {|row| printf("\n", row["科目名"]) row.each {|key, value| printf("\n", key, value) } } puts("
%s
%s%s
") end puts("\n")