Slash aus Path Terminieren

excSchaKaL

Grünschnabel
Hi

Ich würde gerne einen BackSlash aus einen Path Terminieren ich weiß aber nich so recht wie ich das Handhaben soll.
Ich dachte dabei an eine while Schleife.

also ich hab zb den Pfad
c:\test\programm1\programm.exe

jetzt möchte ich den letzten "\" zwischen programm1 und programm.exe zu '\0' terminieren um mit einer ini datei zu arbeiten.

hier mal ein kleiner codeschnipsel
Code:
char PathToProgramm1exe[_MAX_PATH];

	GetModuleFileName (NULL, PathToProgramm1, _MAX_PATH);

	strlen(PathToProgramm1exe);
	
	char PathToHajoDial[];

	// ich denke das man hier mit einer whileschleife arbeiten 
        //kann aber ich hab keine Ahnung wie genau ichs Handhaben soll 
	
	strcat(PathToProgramm1, "\\Programm1.ini");
	printf("%s", PathToProgramm1);   // nur zum text
 
Einfach die einzelnen Schritte durchgehen, wie du's im Kopf machen würdest:

Wir nehmen eine int-Variable, die den Index des letzten Zeichen beinhaltet (kann man über strlen erhalten).

Jetzt diese Variable solange runterzählen, bis der erste Backslash (oder Slash) kommt. An die Stelle jetzt ein '\0' setzen.

Code:
int   iPos = strlen( szPfadMitExe );

while ( iPos > 0 )
{
  iPos--;
  if ( szPfadMitExe[iPos] == '\\' )
  {
    szPfadMitExe[iPos] = 0;
    break;
  }
}

Hab den Code nicht getestet, kann also durchaus in die Hose gehen.... :-)
 
Zuletzt bearbeitet:
Meine Methode, um den Pfad zu einer INI Datei zu erhalten:

Code:
const char szIniFile[] = TEXT ("\\settings.ini");
char szPathToIniFile[MAX_PATH];
GetModuleFileName(NULL,szPathToIniFile,100); // Pfad zur EXE Datei
char *szTmpString = strrchr(szPathToIniFile,'\\'); // Findet letzten Backslash
if (szTmpString != NULL)
{
	szTmpString[0] = '\0'; // Ersetzt Backslash mit \0
}
strcat(szPathToIniFile,szIniFile); // Fügt an den Pfad den Dateinamen der INI Datei
 
Zurück