Tachyoon Geschrieben 15. Juni 2001 Geschrieben 15. Juni 2001 Hallo Leute. Was ich versuche: Es soll aus einem C++ Programm über eine Applikation eine Grafik-Datei geöffnet werden, die in einem bestimmten Verzeichnis liegen können soll. Der User soll nur den Namen der Datei eingeben, der Pfad soll vom Programm hinzugefügt werden. Danach soll die Applikation gestartet und das betreffende Dokument angezeigt werden. Das Starten der Applikation funxt schon automatisch, wenn ich nur den Dateinamen der zu öffnenden Datei angebe. Mein Problem: Ich muß den Pfad manuell hinzufügen über die Abfrage nach dem Dateinamen innerhalb des Programmes: Abfrage: cin << aufruf ; ( = "d:\test-tif\test1.tif") Alles, was ich vom Programm selber an Pfad hinzugebe (Konstanten und Einsetzen von Werten in Variablen) wird einfach ignoriert: aufruf="c:\verzeichnis\name.tif" führt zu einem glatten Durchlauf des Programmes ohne Ausführung der Applikation bzw. Öffnen der betreffenden Datei. Wenn ich jedoch nur angebe: aufruf="name.tif" wird ein Dokument, das sich im Projektverzeichnis befindet, geöffnet. Insgesamt wird also nur der Pfad ignoriert. :mad: Die problematische Zeile: status = system(aufruf); Zusatzinfo zur Zeile: int status; char aufruf[128]; status=0; cin << aufruf // Hier wird der Name bzw. Name + Pfad eingegeben bzw. hinzugefügt Bin übrigens ein C/C++ Anfänger, kann gut sein, daß es was dämliches ist. Compilieren läßt es sich jedoch ohne Fehler und Warnungen. Danke für Eure Antworten! Zitieren
gajUli Geschrieben 15. Juni 2001 Geschrieben 15. Juni 2001 Hi, Du musst an system() exakt die Zeichenkette uebergeben, die Du auch in die Shell eintippen und mit <cr> bestaetigen wuerdest. Voraussetzung ist, dass ueber die Shell ueberhaupt moeglich ist, die Application zu starten UND eine Datei zu launchen. Noch was: In der Zeichenkette erzeugst Du mit "\t" das ASCII-Zeichen fuer einen Tabulator, weil '\' eine sog. Escape-Sequenz ist und nicht etwa das ASCII-Zeichen fuer Backslash. Uli [ 15. Juni 2001: Beitrag editiert von: EisenUli ] Zitieren
Mike Lorey Geschrieben 15. Juni 2001 Geschrieben 15. Juni 2001 Original erstellt von EisenUli: <STRONG>Hi, Noch was: In der Zeichenkette erzeugst Du mit "\t" das ASCII-Zeichen fuer einen Tabulator, weil '\' eine sog. Escape-Sequenz ist und nicht etwa das ASCII-Zeichen fuer Backslash. Uli [ 15. Juni 2001: Beitrag editiert von: EisenUli ]</STRONG> Deswegen string="c:\\test\\test.gif" Zitieren
Tachyoon Geschrieben 16. Juni 2001 Autor Geschrieben 16. Juni 2001 Vielen Dank für die schnelle und professionelle Hilfe @Uli & @Mike Werde Montag auf der Arbeit dann ausprobieren, jetzt ist erst mal Wochenende Tachyoon Zitieren
Mike Lorey Geschrieben 16. Juni 2001 Geschrieben 16. Juni 2001 Gern geschehen!!! [ 16. Juni 2001: Beitrag editiert von: Mike 'The Helmet' Lorey ] Zitieren
Tachyoon Geschrieben 18. Juni 2001 Autor Geschrieben 18. Juni 2001 *Moinmoin* Habs probiert und es klappt ohne Probleme. Dafür habe ich jetzt ein anderes... *arg* ...aber das paßt hier nicht zum Thema, habe daher ein neues eröffnet. Dieser post hier kann eigentlich geschlossen werden, da ja die Frage beantwortet ist. Tachyoon Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.