CSV通过DBConnection连接到CPLEX

CSV通过DBConnection连接到CPLEX,csv,input,cplex,opl,Csv,Input,Cplex,Opl,我想连接CPLEX与CSV格式的文件,我的数据应该是写和读 我认为我正确连接了文件夹“provacsv”中的CSV文件,如下所示: DBConnection db("odbc","DRIVER={Microsoft Access Text Driver (*.txt, *.csv)}; DBQ=C:\\Users\\Giovanni\\opl\\provacsv"); 但是,我无法读取数据,即使是一列2个值。我使用以下语法: c from DBRead(db,"SELECT c FROM cb

我想连接CPLEX与CSV格式的文件,我的数据应该是写和读

我认为我正确连接了文件夹“provacsv”中的CSV文件,如下所示:

DBConnection db("odbc","DRIVER={Microsoft Access Text Driver (*.txt, *.csv)}; DBQ=C:\\Users\\Giovanni\\opl\\provacsv");
但是,我无法读取数据,即使是一列2个值。我使用以下语法:

c from DBRead(db,"SELECT c FROM cb.csv");
b from DBRead(db,"SELECT b FROM cb.csv");
A from DBRead(db,"SELECT * FROM A.csv");    // A is a matrix of values (like 2X2 matrix)
我还想用以下内容编写文件的输出:

x to DBWrite(db,"WRITE x TO x.csv");
用于读取csv

您应该使用iLopInputFile:

假设您有这个export.cvs文件

Nicolas;2;
Alexander;3;
然后你就可以写了

tuple t
{
string firstname;
int number;
}

{t} s={};

execute
{
var f=new IloOplInputFile("export.csv");
while (!f.eof)
{
var str=f.readline();
//writeln(str);
var ar=str.split(";");
if (ar.length==3) s.add(ar[0],Opl.intValue(ar[1]));
}
f.close();
}

execute
{
writeln(s);
}
它将读取csv文件并计算元组集:

{<"Nicolas" 2> <"Alexander" 3>}
这也可以在

检查这一点,基本上可以归结为使用ODBC驱动程序。使用Microsoft Access。将此代码放入
*.dat
文件中:

DBConnection db("odbc","DRIVER={Microsoft Access Text Driver (*.txt, *.csv)}; DBQ=.\\data");
Gasolines,Gas from DBRead(db,"SELECT name,name,demand,price,octane,lead FROM GasData.csv");
Oils,Oil from DBRead(db,"SELECT name,name,capacity,price,octane,lead FROM OilData.csv");
MaxProduction = 14000;
ProdCost = 4;
然后在子文件夹
\data
中,您必须放置
*.csv
文件。我使用兼容的访问驱动程序进行了尝试,但它抛出了一些错误,即没有定义元素。但至少在IBM的一个官方示例中,这是实现这一点的官方方法

Nicolas;2;
Alexander;3;
DBConnection db("odbc","DRIVER={Microsoft Access Text Driver (*.txt, *.csv)}; DBQ=.\\data");
Gasolines,Gas from DBRead(db,"SELECT name,name,demand,price,octane,lead FROM GasData.csv");
Oils,Oil from DBRead(db,"SELECT name,name,capacity,price,octane,lead FROM OilData.csv");
MaxProduction = 14000;
ProdCost = 4;