2012-04-06 21 views
0

Ich bin ein Student-Programmierer mit Qt, um eine GUI-Anwendung für die Arbeit zu erstellen. Der Hauptzweck dieser Anwendung besteht darin, einige unserer alten Stildateien zu öffnen, eine bessere Bearbeitung zu ermöglichen und dann die Datei in einem neuen Format und einer neuen Dateierweiterung zu speichern. Kürzlich wurde ich gebeten, diese Umwandlung von einem Terminal aus zu ermöglichen. Während ich weiß, was argv und argc zusammen mit dem sind, was sie darstellen, bin ich unsicher, wie ich erreichen kann, was sie wollen. Zum Beispiel, wie relative Pfade gegen absolute behandelt werden ... vielleicht, wie man absolut von relativ wird; vielleicht wird gar nichts davon gebraucht. Meine Programmiererfahrung war hauptsächlich mit guis, also ist das ein wenig neu für mich.Gebäude argv und argc

Benutzer vom Terminal folgendes zu lief möchte

application -o /fileLocation /fileDestination template(to determine new format) 

ich für Schleifen zu verwenden begann und wenn Anweisungen dies zu erreichen, beginnen, wenn ich relized, ich könnte die worng Ansatz, um all dies nehmen . Ich würde auch wirklich interessiert sein, WENN QT ETWAS FÜR DIESES HAT! Hier ist, was ich begann kommen mit:

int main(int argc, char *argv[]) 
{ 
    if(argc > 1) 
    { 
     for(int i = 0; i < argc; i++) 
     { 
      if(argv[i] == "-c") 
      { 
       QString fileName = QString::fromStdString(argv[i+1]); 
       QString fileDestination = QString::fromStdString(argv[i+2]); 
       QString templateName = QString::fromStdString(argv[i+3]); 
       QFile fileToConvert(fileName); 
       if(fileToConvert.open(QFile::ReadOnly)) 
       { 
       //do stuff 

Dank für meine Post und einen großen Dank für alle Beiträge Lesen Sie hilft mir, machen dieses Problem zu überwinden.

Antwort

2

if(argv[i] == "-c")

Sie können nicht C-Strings wie das vergleichen. Sie können Zeichen vergleichen, so könnte man
if(argv[i][0] == '-' && argv[i][1] == 'c')

tun, aber in Qt sollten Sie die QApplication verwenden sein :: Argumente Obtaining command line arguments in a Qt application

+0

Outstanding Martin sehen! Danke, dass Sie mich hier auf den richtigen Kurs gebracht haben! –