本帖最后由 RyanBern 于 2015-3-12 17:00 编辑
我可以帮忙做下。
不过有些更详细的信息需要LZ进一步提供。
1.作为输入的txt文档的内容格式是怎样的?方便的话传上来看一看。
2.输入病例号之后,是直接出一行原始信息,还是得到一个数据库对象(通过调用属性来获得相关信息)?
在没有提供以上信息的情况下,需要的脚本可能是这样:
class Patient_Data attr_accessor :patient_id attr_accessor :name attr_accessor :symptom attr_accessor :time_check_in attr_accessor :time_check_out attr_accessor :note attr_accessor :original_data def self.init # 文件的相对路径 filename = "Input.txt" $data_patients = [] File.foreach(filename) do |line| original_data = line.chomp $data_patients << Patient_Data.new(original_data) end end def initialize(str) arr = str.split(" ") @patient_id = arr[0] @name = arr[1] @symptom = arr[2] @time_check_in = arr[3] @time_check_out = arr[4] @note = arr[5] @original_data = str end def self.find_data_by_id result = $data_patients.select{|item| item.patient_id == $game_variables[40].to_s} return result.map{|item| item.original_data} end end
class Patient_Data
attr_accessor :patient_id
attr_accessor :name
attr_accessor :symptom
attr_accessor :time_check_in
attr_accessor :time_check_out
attr_accessor :note
attr_accessor :original_data
def self.init
# 文件的相对路径
filename = "Input.txt"
$data_patients = []
File.foreach(filename) do |line|
original_data = line.chomp
$data_patients << Patient_Data.new(original_data)
end
end
def initialize(str)
arr = str.split(" ")
@patient_id = arr[0]
@name = arr[1]
@symptom = arr[2]
@time_check_in = arr[3]
@time_check_out = arr[4]
@note = arr[5]
@original_data = str
end
def self.find_data_by_id
result = $data_patients.select{|item| item.patient_id == $game_variables[40].to_s}
return result.map{|item| item.original_data}
end
end
使用时先调用Patient_Data.init来初始化。
然后根据$game_variables[40]来寻找信息,下面这句可以把符合条件的都显示出来。
p Patient_Data.find_data_by_id
p Patient_Data.find_data_by_id
准备txt的时候一定要把其编码改成UTF8,否则会出现乱码。
另外,准备txt的时候要在第一行加上一组无关的信息,例如加上"0 0 0 0 0 0",否则第一组数据无法正常读取,具体原因我也不知道为什么。
例如:
0 0 0 0 0 0
21057 张三 单核细胞增多症 2014.05.01 2014.06.18 后期无症状
……
范例:
Project6.rar
(187.69 KB, 下载次数: 95)
|