Във версия 33.2.0 на GAMS променям точката и запетаята на запетаи в csv-файл „file.csv“, защото GAMS изисква запетаи като разделители. След това искам да прехвърля съдържанието на csv-файла в таблица в GAMS и след това да го запазя в gdx-файл. Когато стартирам кода по-долу, точката и запетаята се заменят успешно със запетаи, но въпреки това GAMS не може да направи таблица от него. Получавам грешка 326: изявление за празна таблица не е последвано от правно изявление и грешката възниква, когато се срещне първата запетая в csv-файла „file_temp.csv“. Защо GAMS не разпознава запетаята като разделител?
Файлът „file.csv“ съдържа:
;col1;col2;col3
row1;1;2;3
row5;4;5;6
row3;7;8;9
row4;10;11;12
Моят код е:
Sets
column /col1, col2, col3/
row /row1, row2, row3/;
$onempty
$call "tr ; , <file.csv > file_temp.csv"
Table tab(row,column)
$ondelim
$include file_temp.csv
$offdelim
;
$offempty
execute_unload 'tab.gdx'
tr ; ,
е същото като командатаtr
, последвана от командата,
, защото;
е разделител на команди. Опитайтеtr \; , <file.csv > file_temp.csv
илиtr ';' , <file.csv > file_temp.csv
, за да избегнете проблема. - person MemReflect   schedule 06.02.2021row4
иrow5
във вашия набор (или липсата наrow2
във вашия CSV файл) може да е проблем. Може би някой, който е запознат със софтуера, може да помогне повече. - person MemReflect   schedule 07.02.2021