QString in const char* wandeln
Verfasst: 30. November 2009 15:21
Hoi,
ich habe ein problem beim casten von QString in const char*. Ich habe bereits einiges gesucht, jedoch nichts gefunden was mir bei meinem Problem weiter geholfen hat.
Folgendes Problem:
Ich schreibe einen LUA Editor und habe eine Funktion geschrieben, die den Text überprüfen und LUA-Ausgaben ausgeben soll. Jedoch kann ich nur die Datei prüfen (bzw. ist mir kein anderer Weg bekannt) und der Dateipfad ist in einem QString gespeichert. Um die Datei prüfen zu können benötige ich jedoch einen const char* Wert.
Ich habe vieles versucht, jedoch läuft beim casten irgend etwas falsch, da ich immer nur die Fehlermeldung erhalte "cannot open <seltsame zeichen> : no such file or directory".
Ich bin bereits jede toXY() Konvertierung durchgegangen, jedoch alles ohne Erfolg!
Gebe ich jedoch den Konvertierten String und den QString aus, sind beide absolut identisch! :S
Ich bin am Ende mit meinem Latein und hoffe jemand hat eine Idee!
Der LUA-Syntax Check:
Speichern und schreiben des filepathes:
Ich hoffe ihr findet etwas!
Mfg,
Night
ich habe ein problem beim casten von QString in const char*. Ich habe bereits einiges gesucht, jedoch nichts gefunden was mir bei meinem Problem weiter geholfen hat.
Folgendes Problem:
Ich schreibe einen LUA Editor und habe eine Funktion geschrieben, die den Text überprüfen und LUA-Ausgaben ausgeben soll. Jedoch kann ich nur die Datei prüfen (bzw. ist mir kein anderer Weg bekannt) und der Dateipfad ist in einem QString gespeichert. Um die Datei prüfen zu können benötige ich jedoch einen const char* Wert.
Ich habe vieles versucht, jedoch läuft beim casten irgend etwas falsch, da ich immer nur die Fehlermeldung erhalte "cannot open <seltsame zeichen> : no such file or directory".
Ich bin bereits jede toXY() Konvertierung durchgegangen, jedoch alles ohne Erfolg!
Gebe ich jedoch den Konvertierten String und den QString aus, sind beide absolut identisch! :S
Ich bin am Ende mit meinem Latein und hoffe jemand hat eine Idee!
Der LUA-Syntax Check:
Code: Alles auswählen
bool MainWindow::CheckSyntax()
{
d = new Debugger();
d->Init();
if(filepath == "" || filepath == NULL || !saved)
{
if(!onSave())
{
statusBar()->showMessage("Bitte speichern!", 10000);
return false;
}
}
const char* fl = filepath.toLatin1();
statusBar()->showMessage(tr("filepath: %1").arg(fl));
lua_State* l = luaL_newstate();
luaopen_base(l);
lua_settop(l, 0);
if(luaL_dofile(l, fl))
d->Add(tr("Fehler: %1").arg(lua_tostring(l, -1)));
return true;
}Speichern und schreiben des filepathes:
Code: Alles auswählen
bool MainWindow::on_actionSpeichern_activated()
{
filepath = QFileDialog::getSaveFileName (0, "Speichern unter...", QString(), "*.lua" );
QFile file(filepath);
if (!file.open(QFile::WriteOnly | QFile::Text))
return false;
QTextStream out(&file);
QApplication::setOverrideCursor(Qt::WaitCursor);
out << edit->toPlainText();
QApplication::restoreOverrideCursor();
statusBar()->showMessage(tr("Datei gespeichert"), 2000);
saved = true;
QString shownName;
if (filepath.isEmpty())
shownName = "untitled.txt";
else
shownName = QFileInfo(filepath).fileName();
setWindowTitle(tr("%1[*]").arg(shownName));
return true;
}Ich hoffe ihr findet etwas!
Mfg,
Night