Ruby on rails 如何使用rails将文本文件的这一部分复制出来并放入散列?(VATsim数据文件)
我在想我怎样才能把中间的部分剪掉!客户与“;”的关系然后将其解析为散列以生成xml文件。老实说,我不知道怎么做 文件如下:vatsim-data.txt原始文件 我想将xml格式化为以client为父项的标记和嵌套标记,如下所示:Ruby on rails 如何使用rails将文本文件的这一部分复制出来并放入散列?(VATsim数据文件),ruby-on-rails,Ruby On Rails,我在想我怎样才能把中间的部分剪掉!客户与“;”的关系然后将其解析为散列以生成xml文件。老实说,我不知道怎么做 文件如下:vatsim-data.txt原始文件 我想将xml格式化为以client为父项的标记和嵌套标记,如下所示: callsign:cid:realname:clienttype:frequency:latitude:longitude:altitude:groundspeed:planned_aircraft:planned_tascruise:planned_depairp
callsign:cid:realname:clienttype:frequency:latitude:longitude:altitude:groundspeed:planned_aircraft:planned_tascruise:planned_depairport:planned_altitude:planned_destairport:server:protrevision:rating:transponder:facilitytype:visualrange:planned_revision:planned_flighttype:planned_deptime:planned_actdeptime:planned_hrsenroute:planned_minenroute:planned_hrsfuel:planned_minfuel:planned_altairport:planned_remarks:planned_route:planned_depairport_lat:planned_depairport_lon:planned_destairport_lat:planned_destairport_lon:atis_message:time_last_atis_received:time_logon:heading:QNH_iHg:QNH_Mb:
如果您能帮助解决此问题,我们将不胜感激 您可以使用正则表达式来实现这一点
file = File.read("test.txt")
regex = Regexp.new(/!CLIENTS:.*;\n;/m)
parsed_text = regex.match(file)
然后,解析的_文本将等于该对象中匹配的文本
下面是一个用于匹配的正则表达式示例
看起来文本文件使用:作为分隔符
因此,您可以获取解析的_文本并将其拆分
#split the text on line breaks to an array
lines = parsed_text.to_s.split("\n")
#operate on each line
lines.each do |line|
#split each line into an array
line_array = line.split(":")
line_array.each do |item|
puts item
end
end
然后您需要映射阵列的每个位置。Awe brilliant万分感谢。再问一个问题,说我想删除!客户:以及;从已解析的文本中,我将如何执行此操作?已解析的_text=regex.match(file).gsub(“!CLIENTS:”,”).gsub(“;\n;”,”)
#split the text on line breaks to an array
lines = parsed_text.to_s.split("\n")
#operate on each line
lines.each do |line|
#split each line into an array
line_array = line.split(":")
line_array.each do |item|
puts item
end
end