Path Name Prüfen...



  • Nehmt noch Rücksicht auf Windows 95 User, jedenfalls bis 2004. Da beginnt ja die neue Windows Generation (.NET). Ab da kann man so langsam 95/98/ME und natürlich 3.11 und dessen Vorgänger 😃 vernachlässigen.



  • Wo kann ich die Version denn auslesen?



  • Nehmt noch Rücksicht auf Windows 95 User, jedenfalls bis 2004.

    Machen wir doch. Du mußt lediglich den IE updaten. Du bekommst doch auf einem frisch installierten 95er mit IE 1.00 noch nichtmal Deine Help-Files geöffnet, da ist dieser 'Aufwand' locker vertretbar.

    Die shlwapi.dll ist eine Fundgrube für viele praktische Funktionen. Da ist es fast eine Sünde, diese nicht zu benutzen.



  • hat eigentlich speziell nix mit WinAPI zu tun,

    Microsoft:
    _splitpath, _wsplitpath
    Break a path name into components.

    void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );

    void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext );

    Routine Required Header Compatibility
    _splitpath <stdlib.h> Win 95, Win NT
    _wsplitpath <stdlib.h> or <wchar.h> Win 95, Win NT

    For additional compatibility information, see Compatibility in the Introduction.

    Libraries

    LIBC.LIB Single thread static library, retail version
    LIBCMT.LIB Multithread static library, retail version
    MSVCRT.LIB Import library for MSVCRT.DLL, retail version

    Return Value
    None

    Parameters

    path
    Full path

    drive
    Optional drive letter, followed by a colon (:)

    dir
    Optional directory path, including trailing slash. Forward slashes ( / ), backslashes ( \ ), or both may be used.

    fname
    Base filename (no extension)

    ext
    Optional filename extension, including leading period (.)

    Remarks
    The _splitpath function breaks a path into its four components. _splitpath automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use. _wsplitpath is a wide-character version of _splitpath; the arguments to _wsplitpath are wide-character strings. These functions behave identically otherwise.

    Generic-Text Routine Mappings

    TCHAR.H Routine _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
    _tsplitpath _splitpath _splitpath _wsplitpath

    Each argument is stored in a buffer; the manifest constants _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, and _MAX_EXT (defined in STDLIB.H) specify the maximum size necessary for each buffer. The other arguments point to buffers used to store the path elements. After a call to _splitpath is executed, these arguments contain empty strings for components not found in path. You can pass a NULL pointer to _splitpath for any component you don‚t need.

    Borland:
    #include <dir.h>
    int fnsplit(const char *path, char *drive, char *dir, char *name, char *ext);
    int _wfnsplit(const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *name, wchar_t *ext );

    Beschreibung

    fnsplit übernimmt einen vollständigen Dateinamen (Parameter path) als String in der Form

    X:\DIR\SUBDIR\NAME.EXT

    und zerlegt path in seine vier Einzelkomponenten. Diese werden dann in den durch drive, dir, name und ext bezeichneten Strings gespeichert (Alle fünf Parameter müssen übergeben werden, einzelne davon dürfen aber NULL sein, was zur Folge hat, daß die zugehörige Komponente zwar analysiert, aber nicht gespeichert wird). Wenn eine Pfadkomponente NULL ist, dann gehört die Komponente zu einem leeren String, der nicht NULL ist.
    Die Maximalgrößen aller beteiligten Strings (inklusive des abschließenden Nullzeichen \0) sind durch die Konstanten MAXDRIVE, MAXDIR, MAXPATH, MAXFILE und MAXEXT in dir.h festgelegt.

    Konstante Max 16-bit Max 32-bit String

    MAXPATH 80 260 path
    MAXDRIVE 3 3 drive inklusive Doppelpunkt (:)
    MAXDIR 66 256 dir inklusive führendem und abschließendem umgekehrten Schrägstrich (\)
    MAXFILE 9 256 name
    MAXEXT 5 256 ext inklusive führendem Punkt (.)

    fnsplit unterstellt, daß die durch drive, dir, name und ext bezeichneten Strings eine ausreichende Größe haben, um jede Komponente zu speichern, die nicht NULL ist. fnsplit verteilt die Interpunktionszeichen aus path in folgender Weise:

    drive enthält den Laufwerksbezeichner mit einem Doppelpunkt (C:, A:, usw.);
    dir enthält den führenden und den abschließenden umgekehrten Schrägstrich (\BC4\INCLUDE\, \SOURCE\, usw.);
    name enthält den Dateinamen;
    ext enthält den Punkt, der die Namenserweiterung einleitet (.C, .EXE, usw.).

    fnmerge und fnsplit verhalten sich invers zueinander. Die Anwendung von fnmerge auf die durch fnsplit ermittelten Elemente eines vollständigen Pfadnamens ergeben wieder das Original.

    Rückgabewert

    fnsplit liefert einen Integerwert zurück, der sich aus fünf in dir.h definierten Flags zusammensetzt. Ein gesetztes Flag zeigt an, daß die zugehörige Komponente in path vorhanden war. Folgende Flags sind in dir.h definiert:

    EXTENSION Eine Namenserweiterung
    FILENAME Ein Dateiname
    DIRECTORY Mindestens ein Verzeichnis
    DRIVE Ein Laufwerksbezeichner
    WILDCARDS Jokerzeichen (* und/oder ?)



  • Original erstellt von WebFritzi:
    Wo kann ich die Version denn auslesen?

    eigentlich müsste doch die Version auf der CD stehen, von der du es Installiert hast, oder Irre ich mich?



  • Wat für ne CD? Ich habe den BCB, und da ist das SDK, sowohl die Headers als auch die Help-Files, dabei. Die Version des BCB ist Ver 3, aber das ist ja egal. Also, wo kann ich die Versions No meines SDK auslesen?



  • Achso du hast den Borland!
    Kann es sein, dass die Funktion MS-Spezifisch ist?



  • Lies doch mal wenigstens diese Seite des Threads. Dann wird deine letzte Frage beantwortet.



  • Ist ja schon gut! 🙄 :o 😡



  • Hi,

    PathFindExtension Function
    
    --------------------------------------------------------------------------------
    
    Searches a path for an extension. 
    
    Syntax
    
    LPTSTR PathFindExtension(          LPCTSTR pPath
    );
    Parameters
    
    pPath
    [in] Pointer to a null-terminated string of maximum length MAX_PATH that contains the path that contains the extension for which to search.
    Return Value
    
    Returns the address of the "." preceding the extension within pPath if an extension is found, or the address of the trailing NULL character otherwise. 
    
    ////////////////////////////////////////////////////////////////////
    
    PathFileExists Function
    
    --------------------------------------------------------------------------------
    
    Determines whether a path to a file system object such as a file or directory is valid. 
    
    Syntax
    
    BOOL PathFileExists(          LPCTSTR pszPath
    );
    Parameters
    
    pszPath
    [in] Pointer to a null-terminated string of maximum length MAX_PATH that contains the full path of the object to verify. 
    Return Value
    
    Returns TRUE if the file exists, or FALSE otherwise. Call GetLastError for extended error information.
    

    Ich empfehle Euch die neuste SDK herunterzuladen. 🙂

    bye


Anmelden zum Antworten