Frage zu ner funktion
-
ich lass mir den pfad zur exe eines laufenden prozesses mit GetModuleFileNameExA() auslesen, packe das ergebnis dann in einen stringstream um aus dem char array dann einen std::string zu machen. Diesen string übergebe ich dann an die md5 funktion... muss ich da nun die \ auch maskieren?
-
öhm ja .. hab mir die frage selbst beantwortet xD also ich hab mir den pfad mal ausgeben lassen inner konsole und er sieht in etwa so aus "C:\Programme\Bla\Programm.exe"
also muss ichs maskieren aber wie stell ich das nun an, denn der pfad variiert wahrscheinlich von user zu user
-
gibt es irgendwie die möglichkeit in einem string nach allen \ zu suchen und \\ draus zu machen??
-
Do*natz schrieb:
gibt es irgendwie die möglichkeit in einem string nach allen \ zu suchen und \\ draus zu machen??
C oder C++?
In C++ kannst du im std::strign einfach nach "\" suchen und nach jedem Auffinden durch "\\\" ersetzen.
-
ja geht um c++ und ich benutze std::string also das was du meintest .. und wie genau such ich nun danach? mit welcher subfunktion??
-
also ich hab nun im internet diese funktion gefunden allerdings kann ich damit auch nich nach "\" suchen weil dann das anführungszeichen danach auch nicht erkannt wird und wenn ich nach "\" suche und mit "\\\" ersetzen lassen will werden die \ einfach entfernt

die funktion:
std::string ReplaceString(const std::string &stringSearchString, const std::string &stringReplaceString, std::string stringStringToReplace) { std::string::size_type pos = stringStringToReplace.find(stringSearchString, 0); int intLengthSearch = stringSearchString.length(); int intLengthReplacment = stringReplaceString.length(); while(std::string::npos != pos) { stringStringToReplace.replace(pos, intLengthSearch, stringReplaceString); pos = stringStringToReplace.find(stringSearchString, pos + intLengthReplacment); } return stringStringToReplace; } Quelle: Online-Tutorials.net
-
ähm ja .. weiss der geier wieso das hier nun auch entfernt wurde aber der text sollte so aussehen:
also ich hab nun im internet diese funktion gefunden allerdings kann ich damit auch nich nach "\" suchen weil dann das anführungszeichen danach auch nicht erkannt wird und wenn ich nach "\" suche und mit "\\\" ersetzen lassen will werden die \ einfach entfernt

die funktion:
std::string ReplaceString(const std::string &stringSearchString, const std::string &stringReplaceString, std::string stringStringToReplace) { std::string::size_type pos = stringStringToReplace.find(stringSearchString, 0); int intLengthSearch = stringSearchString.length(); int intLengthReplacment = stringReplaceString.length(); while(std::string::npos != pos) { stringStringToReplace.replace(pos, intLengthSearch, stringReplaceString); pos = stringStringToReplace.find(stringSearchString, pos + intLengthReplacment); } return stringStringToReplace; } Quelle Online-Tutorials.net
-
okay so gehts auch nich sry für den spam
bei den \ in anführungszeichen fehlt jeweils ein \ .... keine ahnung wieso wenn mans kopiert sind se drin xD
-
hat keiner ne lösung??
-
Das muss nicht mehr extra maskiert werden, die Backslashes musst du nur in eigenen Stringliteralen maskieren. Also so: "C:\\Eigene Dateien" . Wenn du den String von einer funktion bekommst musst du das nicht mehr extra tun. Der Fehler liegt irgendwo anders. Es könnte sein das die exe ausgeführt wird und da ist sie gesperrt. Ob das allerdings auch für den read-Modus gillt weiss ich nicht