Ich schreibe ein Programm, das von QT csv schreiben muss. Die Codes sind wie folgt:Schreiben Sie die CSV-Datei von QT. Es funktionierte auf Mac, aber nicht auf Windows
void MainWindow::writeUserData(){
CSVWriter writerHeader;
writerHeader.setSeparator(";");
writerHeader.openFile(m_path+"users/header.csv");
QString fileName = m_path + "users/"+ m_userData["userId"] + "_" + m_userData["name"] + "_" + QDateTime::currentDateTime().toString()+".csv";
if(!Experiment::MAC_COMP){
fileName = fileName.replace(" ","_");
fileName = fileName.replace(":","_");
fileName[1] =':';
}
CSVWriter writerUserData;
writerUserData.setSeparator(";");
writerUserData.openFile(fileName);
QStringList header;
QStringList d;
QMapIterator<QString,QString> i(m_userData);
while(i.hasNext()){
i.next();
header<< i.key();
d<<i.value();
}
writerHeader.setColumnNames(header, true);
writerUserData.setColumnNames(header);
writerUserData.write(d,true);
writerHeader.closeFile();
writerUserData.closeFile();
}
Es funktionierte perfekt auf Mac, aber konnte nicht die Datei unter Windows schreiben. Weiß jemand warum? Vielen Dank im Voraus!
Kein Debugger? Versuche es härter. – Puppy
Nichts besonders offensichtlich oder abscheulich im Code zur Verfügung gestellt. Starten Sie den Debugger und stellen Sie sicher, dass der zusammengesetzte Dateipfad unter Windows sinnvoll ist. – user4581301
Danke für Ihre Ermutigung. Ich habe versucht, zu debuggen. Da ich Daten später in dieser Datei protokollieren muss, sagte mir das Debugging nur, dass "unmöglich, die Datei zu öffnen" und "unmöglich, in die Datei zu schreiben, weil m_Columns.empty() || m_File == NULL return false" sinnvoll ist weil die Datei nicht erstellt wurde. Wenn Sie Erfahrung haben, teilen Sie es bitte mit mir. Danke –