Dateinamen ohne Dateiendung
-
Hallo zusammen,
ich bräuchte ne Funktion, welche mir den Stamm-Dateinamen ohne die Dateiendung zurückliefert. Also ich hab z.B. die Datei 'hallo.xyz' und ich bräuchte eine Funktion, die mir dann eben nur 'hallo' zurückliefert.
Wäre euch echt sehr dankbar wenn ihr mir da weiterhelfen könntet.
Einen schönen Gruß
CMan
-
hat nix mit winapi zu tun, wirst ja wohl selber was schreiben können was alles bis zum letzten vorkommenden punkt kopiert....
-
Hallo,
also wenn du den Dateinamen schon in nem String hast (davon gehe ich aus, hast nichts weiter gesagt) zerpfluecke doch den Sting bei jedem Punkt und alles nach dem letzen Punkt laesst du weg, den Rest fuegst du wieder mit Punkten zusammen.
der Guenther
-
Warum so umständlich?
ein simples
DateiName[(int)(strrchr( DateiName, '.' ) - DateiName] = '\0';tut schon, was er will.
Da sind die vorderen Punkte völlig uninteressant.
-
Dann doch lieber gleich so:
*(strrchr(szFileName, '.')) = 0; // bzw. '\0' wenn dir das besser gefällt
-
Es gibt auch eine Funktion
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );die dir alle möglichen Bestandteile deines Dateinamens einzeln zurückgibt.
Für näheres in die MSDN schauen. Nur soviel: unbenutzte Parameter werden mit NULL initialisiert und man muss <stdlib.h> einbinden.Viel Spaß,
oli
-
CPath(mystring).RemoveExtension()
-
Na, wenn wir hier jetzt "wer kennt mehr Funktionen" spielen, hab ich auch noch eine:
void PathRemoveExtension(LPTSTR pszPath)
Entfernt die Dateiendung, sofern eine vorhanden ist.