Corrections to def pbGetCsvRecord

This commit is contained in:
Maruno17
2020-09-05 21:57:42 +01:00
parent 72638c7275
commit 5d3189174c

View File

@@ -365,19 +365,6 @@ def csvfield!(str)
return ret return ret
end 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) def csvBoolean!(str,line=-1)
field = csvfield!(str) field = csvfield!(str)
if field[/^1|[Tt][Rr][Uu][Ee]|[Yy][Ee][Ss]|[Yy]$/] if field[/^1|[Tt][Rr][Uu][Ee]|[Yy][Ee][Ss]|[Yy]$/]
@@ -477,7 +464,7 @@ def checkEnumFieldOrNil(ret,enumer)
end end
#=============================================================================== #===============================================================================
# Csv record reading/writing # Csv record readin
#=============================================================================== #===============================================================================
def pbGetCsvRecord(rec,lineno,schema) def pbGetCsvRecord(rec,lineno,schema)
record = [] record = []
@@ -601,7 +588,8 @@ def pbGetCsvRecord(rec,lineno,schema)
field = csvfield!(rec) field = csvfield!(rec)
record.push(checkEnumFieldOrNil(field,schema[2+i-start])) record.push(checkEnumFieldOrNil(field,schema[2+i-start]))
when "y" # Enumerable or integer 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 when "Y" # Optional enumerable or integer
field = csvfield!(rec) field = csvfield!(rec)
if field=="" if field==""
@@ -609,7 +597,7 @@ def pbGetCsvRecord(rec,lineno,schema)
elsif field[/^\-?\d+$/] elsif field[/^\-?\d+$/]
record.push(field.to_i) record.push(field.to_i)
else else
record.push(checkEnumFieldOrNil(rec,schema[2+i-start])) record.push(checkEnumFieldOrNil(field,schema[2+i-start]))
end end
end end
end end
@@ -618,6 +606,22 @@ def pbGetCsvRecord(rec,lineno,schema)
return (schema[1].length==1) ? record[0] : record return (schema[1].length==1) ? record[0] : record
end 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) def pbWriteCsvRecord(record,file,schema)
rec = (record.is_a?(Array)) ? record.clone : [record] rec = (record.is_a?(Array)) ? record.clone : [record]
for i in 0...schema[1].length for i in 0...schema[1].length