void zhu::duru()
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./zzh");
bool ok = db.open();
if(ok)
{
QString a,b,c,tmp,pc;
QByteArray temp,temp2;
int jishu = 0;
QString lujing = QFileDialog::getOpenFileName(this, tr("选择"), "./","csv (*.csv)");
QFile wenjian(lujing);
if(wenjian.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&wenjian);
in.setCodec("utf-8");
while(!in.atEnd())
{
tmp=in.readLine();
temp.append(tmp);
for(int i=0;i<=temp.length();i++)
{
if(!temp.at(i)==",")//这里有错误
{
temp2.append(temp.at(i));
}
else if(temp.at(i)==",")//这里有错误
{
if(jishu==0){a.append(temp2);temp2="";jishu+1;}//这里有错误
if(jishu==1){b.append(temp2);temp2="";jishu+1;}//这里有错误
if(jishu==2){c.append(temp2);temp2="";jishu+1;}//这里有错误
}
}
pc=QString("insert into biao values("1%","2%","3%")").arg(a).arg(b).arg(c);
QSqlQuery cr;
cr.exec(pc);
jishu=0;
}
}
}
}
我想尝试读csv文件,然后把读到的数据放在数据库里,数据库就三个字段a,b,c,make错误如下:
make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/local/Trolltech/Qt-4.3.3/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtSql -I/usr/local/Trolltech/Qt-4.3.3/include/QtSql -I/usr/local/Trolltech/Qt-4.3.3/include -I. -I. -I. -o shixian.o shixian.cpp
shixian.cpp:75:2: 警告: 文件未以空白行结束
shixian.cpp: In member function ‘void zhu::duru()’:
shixian.cpp:44: 错误: ISO C++ 不允许比较指针和整数的值
shixian.cpp:49: 错误: ISO C++ 不允许比较指针和整数的值
shixian.cpp:51: 警告: statement 不起作用
shixian.cpp:52: 警告: statement 不起作用
shixian.cpp:53: 警告: statement 不起作用
shixian.cpp:59: 错误: expected primary-expression before ‘(’ token
shixian.cpp:59: 错误: expected `)' before numeric constant
make: *** [shixian.o] 错误 1
我的思路是,如果不是逗号,就填充数组,如果是逗号,根据计数变量,将值赋予不同的变量,然后将计数变量和数组都清空,然后再加工成SQL语句,最后放在数据库里。我把上面提示的错误都标记在代码中了。我现在该怎么解决呀?先谢谢各位了。