Neuling braucht hilfe :)
-
Hallo
Wie die Überschrifft schon sagt bin ich auf dem Gebiet C/C++ ain neuling und möchte mich mehr damit beschäftigen. ich verwende Visual Studio 2010 und es handelt sich dabei um eine Windows-Form anwendung,
Ich habe mich durch mehrere tutorials gelesen, nur leider behandeln die meisten nur Mathe spielchen und fast alle nur Konsolenanwendungen.
Und zwar möchte ich jetzt ein kleines Programm schreiben, das mir eine anwendung startet, pfade zu anwendungen aus einer config liest und auch schreibt.
Im genauen heißt das:
Beim start soll das programm erkennen ob in der Config der pfad zu meiner anwendung "X" schon vorhanden ist. Ist sie es dann weiter im programm, wenn nicht soll ein openfolderdialog angezeigt werden. also eine normale if abfrage.
dann Button1 soll mir in eine txt datei was reinschreiben (wird vom zu startenden programm benötigt)
wenn das geschrieben ist soll ein ordner gelöscht werden (mit inhalt) und das programm X gestartet werden.ich habe mehrfach was von
WinExec("pfad\\x.exe",SW_SHOW);
nur wie setze ich davor jetzt den pfad aus der Config-Datei.
Wäre nett wenn mir da jemand weiter Helfen würde. Und endschuldigt wenn das ein doppel/dreifach post ist, aber ich verstehe leider nur bahnhof wenn jemand mit Fach ausdrücken anfängt da ich das nötige wissen noch nicht so drauf habe.
EDIT
Hab es gerade gesehen das das gar nicht Hier rein gehöhrt, sry. Bitte verschieben oder zu machen^^
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Beschreibe mal, wie der Inhalt deiner Datei mit dem Pfad aussieht.
Kannst du diesen Pfad nicht auch einfach per Kommandozeile angeben?
-
Also, wenn deine Config Datei eine .INI ist gibt es da fertige Funktionen von MS, z.B GetPrivateProfileString() (http://msdn.microsoft.com/en-us/library/ms724353%28VS.85%29.aspx).
Ohne jetzt zuviel in die Dokumentation der Funktion einzutauchen würde ich sagen, dass du zuerst checken solltest ob die Datei existiert. Das könntest du ca. so machen:#include <fstream> //... std::ifstream ifs( "Config.INI", std::ios::binary ); if( ifs.is_open() ) //Datei existiert else //Datei existiert nicht ifs.close();
Falls die Datei existiert, aber der angegebene Value nicht, wird von GetPrivateProfileString der angegebene Standardwert zurückgegeben, du könntest also einfach als Standardwert irgendeinen Mist angeben und gucken ob der wieder zurück kommt.
Einen "Open File" Dialog öffnest du per GetOpenFileName() (http://msdn.microsoft.com/en-us/library/ms646927%28VS.85%29.aspx).
Gruß,
Marius/Edit: oh, habe gerade gesehen dass du ja C++/CLI meinst, kann sein das meine Syntax da ein wenig anders ist, aber das Prinzip sollte das selbe sein.
-
Absoluter Schwachsinn, würde ich so nicht machen.
Wie kommt man nur auf so einen Blödsinn tzzzzzz
-
Hi GarthB,
die Antwort kommt vielleicht ein bisschen spät, aber ich denke dein Vorhaben könntest du folgendermaßen mit .Net realisieren:String ^path = "C:\\config.txt"; // existiert pfad? if(File::Exists(path)) { StreamReader ^reader = gcnew StreamReader(path); String ^singleLine = ""; List<String ^> ^programPaths = gcnew List<String ^>(); // Bis zum Ende des Files auslesen while (singleLine != nullptr) { // jeweils eine Zeile auslesen und in Liste speichern singleLine = reader->ReadLine(); if (singleLine != nullptr) programPaths->Add(Convert::ToString(singleLine)); } reader->Close(); // Existiert der File, den der Pfad angibt? if(File::Exists(programPaths[0])) { // Neuen Prozess starten Process ^process = gcnew Process(); process->StartInfo->FileName = programPaths[0]; process->Start(); } }
Ich hoffe das hilft dir ein bisschen weiter.
lg