nicht kompletter pfad, datei verschwindet im nirgendwo ???
-
In meinem Programm benutzt ich einen ofstream zum informationen abspeichern.
zum bsp:
ofstream Design; Design.open(Designs\\Design 1.desi); Design << "bla bla"; Design.close();
Ich glaub so ungf wars
kann auchDesign.open(\\Designs\\Design 1.desi);
gewesen sein hab ich jetzt vergessen, auf jeden fall das was richtig wäre
Das funktionierte zu Anfang wunderbar aber irgendwann gings nicht mehr.
(Möglicherweise nachdem ich es öfter nutzte ?)Jetzt benutze ich immer folgenden Algorithmus:
void GetModulFileName() { //----Get Module File Name---------- std::string Datei, zeichen; std::string merken[16384]; std::string DateiName,Invertiert; TCHAR szFileName[MAX_PATH]; //find app location GetModuleFileName(NULL, szFileName, sizeof(szFileName) / sizeof(TCHAR)); int length[3]; int zuruk; Datei = szFileName; length[1] = Datei.size(); length[2] = 0; while (length[2]<length[1]) { zeichen = Datei.substr(length[2],1); if (zeichen == "\\") { Slashcount++; merken[length[2]] = zeichen; } length[2]++; } zuruk = 0; while (zuruk<length[1]) { zuruk++; if (Datei.substr(zuruk-1,1)=="\\") { Slashcount2++; if (Slashcount == Slashcount2) { break; } } } std::string hilfeplusname; DateiName = Datei.substr(zuruk,(length[1]-zuruk+1)); Invertiert = Datei.substr(0,Datei.size()-DateiName.size()); // MessageBox(NULL,Invertiert.c_str(),"ERROR",MB_OK|MB_ICONQUESTION); Form1->Label15->Caption = Invertiert.c_str(); }
WARUM muss ich diesen mist machen, was mach ich denn falsch.
also er erstellt die datei irgendwo das weiß ich, weil ich ne existenzabfrage mit nem ifstream eingerichtet habe, aber das wo sie sein sollte ist sie nicht.
nämlich in einem unterordner des Programmordners.Ich finde das sehr seltsam.
EDIT cpp tags
-
Nimm doch einfach absolute Pfade, bei relativen führt je Pfadänderung im Programm dazu, dass die Dateien beim letzten aktuellen Pfad gespeichert werden. Als Beispiel: du befindest dich zu Beginn im Programmverzeichnis, danach lädst du in deinem Programm aus irgendeinem Pfad ein Bild und schon ist der aktuelle Pfad nicht mehr das Programmverzeichnis sondern der Pfad wo du das Bild hergeholt hast.
Mit ExtractFilePath und Application->ExeName bekommst du z.B. das Programmverzeichnis
auch die Suchfunktion liefert hierzu einige Beiträge
-
das ist ja blöd.
Ich glaub ich bleib bei meiner Perfekt ausgeklügelten Prozedur.
und absolute Pfade, kann ich nur damit machen, denn ich kann es hininstallieren wo ich will !
-
Was haben absolute Pfade mit der Installation zu tun? Ich hab ja schließlich nicht vorgeschlagne im Programm "c:\\programme\\MeinProgramm" zu verwenden, sondern mit den genannten Funktionen den Pfad der installierten Anwendung zur Laufzeit zu ermitteln.
-
achso