From 5d3189174ce7a3fc4c103c625433937a1e6b747e Mon Sep 17 00:00:00 2001 From: Maruno17 Date: Sat, 5 Sep 2020 21:57:42 +0100 Subject: [PATCH] Corrections to def pbGetCsvRecord --- Data/Scripts/021_Compiler/001_Compiler.rb | 36 +++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/Data/Scripts/021_Compiler/001_Compiler.rb b/Data/Scripts/021_Compiler/001_Compiler.rb index 0f5732d30..a6ea9dd89 100644 --- a/Data/Scripts/021_Compiler/001_Compiler.rb +++ b/Data/Scripts/021_Compiler/001_Compiler.rb @@ -365,19 +365,6 @@ def csvfield!(str) return ret end -def csvQuote(str,always=false) - return "" if !str || str=="" - if always || str[/[,\"]/] # || str[/^\s/] || str[/\s$/] || str[/^#/] - str = str.gsub(/[\"]/,"\\\"") - str = "\"#{str}\"" - end - return str -end - -def csvQuoteAlways(str) - return csvQuote(str,true) -end - def csvBoolean!(str,line=-1) field = csvfield!(str) if field[/^1|[Tt][Rr][Uu][Ee]|[Yy][Ee][Ss]|[Yy]$/] @@ -477,7 +464,7 @@ def checkEnumFieldOrNil(ret,enumer) end #=============================================================================== -# Csv record reading/writing +# Csv record readin #=============================================================================== def pbGetCsvRecord(rec,lineno,schema) record = [] @@ -601,7 +588,8 @@ def pbGetCsvRecord(rec,lineno,schema) field = csvfield!(rec) record.push(checkEnumFieldOrNil(field,schema[2+i-start])) when "y" # Enumerable or integer - record.push(csvEnumFieldOrInt!(rec,schema[2+i-start],"",FileLineData.linereport)) + field = csvfield!(rec) + record.push(csvEnumFieldOrInt!(field,schema[2+i-start],"",FileLineData.linereport)) when "Y" # Optional enumerable or integer field = csvfield!(rec) if field=="" @@ -609,7 +597,7 @@ def pbGetCsvRecord(rec,lineno,schema) elsif field[/^\-?\d+$/] record.push(field.to_i) else - record.push(checkEnumFieldOrNil(rec,schema[2+i-start])) + record.push(checkEnumFieldOrNil(field,schema[2+i-start])) end end end @@ -618,6 +606,22 @@ def pbGetCsvRecord(rec,lineno,schema) return (schema[1].length==1) ? record[0] : record end +#=============================================================================== +# Csv record writing +#=============================================================================== +def csvQuote(str,always=false) + return "" if !str || str=="" + if always || str[/[,\"]/] # || str[/^\s/] || str[/\s$/] || str[/^#/] + str = str.gsub(/[\"]/,"\\\"") + str = "\"#{str}\"" + end + return str +end + +def csvQuoteAlways(str) + return csvQuote(str,true) +end + def pbWriteCsvRecord(record,file,schema) rec = (record.is_a?(Array)) ? record.clone : [record] for i in 0...schema[1].length