WinAPI

Simsi1277

Grünschnabel
Hallo zusammen,

Habe 2 probleme... habe einen Zeiger *DateiName wo folgender Inhalt drinne steht.

*DateiName = "\Pfadname"

Wie bekomme ich auf WinAPI Basis nur den Pfadnamen ohne \ .....

strpos usw, gibt es ja in Win nicht. Würd mich über Hilfe sehr freuen.

2. Problem Habe ein aktuellen Pfad z.b "\test\test1\DirectoryName" in einer variablen stehen. Habe ich mit GetCurrentDirectory mir geholt aber möchte eigentlich nur den "DirectoryNamen" haben. Wie mach ich das mit WinAPI?

Gruss Simsi
 
Hi.
Hallo zusammen,

Habe 2 probleme... habe einen Zeiger *DateiName wo folgender Inhalt drinne steht.

*DateiName = "\Pfadname"

Wie bekomme ich auf WinAPI Basis nur den Pfadnamen ohne \ .....
Die Funktion strrchr gibt die letzte Position eines Zeichens in einem String zurück.
2. Problem Habe ein aktuellen Pfad z.b "\test\test1\DirectoryName" in einer variablen stehen. Habe ich mit GetCurrentDirectory mir geholt aber möchte eigentlich nur den "DirectoryNamen" haben. Wie mach ich das mit WinAPI?
Da brauchst du kein WinAPI. Das kannst du ebenfalls mit der Standard C Funktion strrchr machen:
C:
const char pfad[] = "test\\test1\\DirectoryName\\pfadname";
char basename[80], dirname[250] = { '\0' };
const char* pos = strrchr(pfad, '\\');
if (pos != 0) {
  strcpy(basename, pos + 1);
  strcpy(dirname, pfad);
  dirname[pos - pfad] = '\0';

  puts(basename);
  puts(dirname);
}

Gruss
 
Vielen Dank

Eine Frage noch: Du schreibst

Code:
   1.
      const char pfad[] = "test\\test1\\DirectoryName\\pfadname";
   2.
      char basename[80], dirname[250] = { '\0' };
   3.
      const char* pos = strrchr(pfad, '\\');
   4.
      if (pos != 0) {
   5.
        strcpy(basename, pos + 1);
   6.
        strcpy(dirname, pfad);
   7.
        dirname[pos - pfad] = '\0';
   8.
       
   9.
        puts(basename);
  10.
        puts(dirname);
  11.
      }

Müsste Zeile 7 nicht so aussehen?

Code:
dirname[pfad-pos] = '\0';

Gruss Simsi
 
Zurück