mirror of
https://github.com/Relintai/godot-resources-as-sheets-plugin.git
synced 2025-04-08 17:41:50 +02:00
Add support for importing jaggy csv and ", " delim
This commit is contained in:
parent
f26eabf69b
commit
1e7eef6e3f
@ -19,17 +19,25 @@ func set_value(entry, key : String, value, index : int):
|
||||
func save_entries(all_entries : Array, indices : Array, repeat : bool = true):
|
||||
if timer == null || timer.time_left <= 0.0:
|
||||
var file = File.new()
|
||||
var space_after_delimeter = import_data.delimeter.ends_with(" ")
|
||||
file.open(import_data.edited_path, File.WRITE)
|
||||
if import_data.remove_first_row:
|
||||
var names = []
|
||||
names.resize(import_data.prop_names.size())
|
||||
for i in names.size():
|
||||
names[i] = TextEditingUtils.string_snake_to_naming_case(import_data.prop_names[i])
|
||||
if i != 0 and space_after_delimeter:
|
||||
names[i] = " " + names[i]
|
||||
|
||||
file.store_csv_line(names, import_data.delimeter)
|
||||
file.store_csv_line(names, import_data.delimeter[0])
|
||||
|
||||
for x in csv_rows:
|
||||
file.store_csv_line(x, import_data.delimeter)
|
||||
if space_after_delimeter:
|
||||
for i in x.size():
|
||||
if i == 0: continue
|
||||
x[i] = " " + x[i]
|
||||
|
||||
file.store_csv_line(x, import_data.delimeter[0])
|
||||
|
||||
file.close()
|
||||
if repeat:
|
||||
@ -48,15 +56,26 @@ func import_from_path(path : String, insert_func : FuncRef, sort_by : String, so
|
||||
|
||||
var line
|
||||
var first = true
|
||||
var space_after_delimeter = import_data.delimeter.ends_with(" ")
|
||||
csv_rows = []
|
||||
while !file.eof_reached():
|
||||
line = file.get_csv_line(import_data.delimeter)
|
||||
if first && import_data.remove_first_row:
|
||||
line = file.get_csv_line(import_data.delimeter[0])
|
||||
if space_after_delimeter:
|
||||
for i in line.size():
|
||||
line[i] = line[i].trim_prefix(" ")
|
||||
|
||||
if first and import_data.remove_first_row:
|
||||
line = " "
|
||||
first = false
|
||||
continue
|
||||
|
||||
if csv_rows.size() == 0 || line.size() == csv_rows[0].size():
|
||||
if csv_rows.size() == 0:
|
||||
csv_rows.append(line)
|
||||
|
||||
elif line.size() != 1:
|
||||
if line.size() != csv_rows[0].size():
|
||||
line.resize(csv_rows[0].size())
|
||||
|
||||
csv_rows.append(line)
|
||||
|
||||
var rows := []
|
||||
|
@ -40,16 +40,33 @@ func _load_entries():
|
||||
|
||||
import_data.delimeter = ";"
|
||||
var text_lines := [file.get_line().split(import_data.delimeter)]
|
||||
var space_after_delimeter = false
|
||||
var line = text_lines[0]
|
||||
if line.size() == 1:
|
||||
import_data.delimeter = ","
|
||||
text_lines[0] = text_lines[0][0].split(import_data.delimeter)
|
||||
line = line[0].split(import_data.delimeter)
|
||||
text_lines[0] = line
|
||||
if line[1].begins_with(" "):
|
||||
for i in line.size():
|
||||
line[i] = line[i].trim_prefix(" ")
|
||||
|
||||
text_lines[0] = line
|
||||
space_after_delimeter = true
|
||||
import_data.delimeter = ", "
|
||||
|
||||
while !file.eof_reached():
|
||||
line = file.get_csv_line(import_data.delimeter)
|
||||
line = file.get_csv_line(import_data.delimeter[0])
|
||||
if space_after_delimeter:
|
||||
for i in line.size():
|
||||
line[i] = line[i].trim_prefix(" ")
|
||||
|
||||
if line.size() == text_lines[0].size():
|
||||
text_lines.append(line)
|
||||
|
||||
elif line.size() != 1:
|
||||
line.resize(text_lines[0].size())
|
||||
text_lines.append(line)
|
||||
|
||||
entries = []
|
||||
entries.resize(text_lines.size())
|
||||
|
||||
|
@ -167,7 +167,7 @@ func create_enum_for_prop(col_index):
|
||||
|
||||
func strings_to_resource(strings : Array):
|
||||
var new_res = new_script.new()
|
||||
for j in prop_names.size():
|
||||
for j in min(prop_names.size(), strings.size()):
|
||||
new_res.set(prop_names[j], string_to_property(strings[j], j))
|
||||
|
||||
if prop_used_as_filename != "":
|
||||
|
@ -63,11 +63,6 @@ _global_script_classes=[ {
|
||||
"class": "ThemeStylebox",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/editor_stylebox_overrider.gd"
|
||||
}, {
|
||||
"base": "Resource",
|
||||
"class": "TrainBigmartsalesprediction",
|
||||
"language": "GDScript",
|
||||
"path": "res://aa/train_BigMartSalesPrediction.gd"
|
||||
} ]
|
||||
_global_script_class_icons={
|
||||
"CellEditor": "",
|
||||
@ -80,8 +75,7 @@ _global_script_class_icons={
|
||||
"SpreadsheetImport": "",
|
||||
"TextEditingUtils": "",
|
||||
"ThemeIconButton": "",
|
||||
"ThemeStylebox": "",
|
||||
"TrainBigmartsalesprediction": ""
|
||||
"ThemeStylebox": ""
|
||||
}
|
||||
color_rows=false
|
||||
color_arrays=true
|
||||
|
Loading…
Reference in New Issue
Block a user