Re: Directory separators [message #24447 is a reply to message #23760] |
Wed, 28 March 2001 14:41  |
George Constantinides
Messages: 16 Registered: July 2000
|
Junior Member |
|
|
>
>>
>> I have been using the following function to select the appropriate OS
>> specific directory separator. I have two questions about it: (1) what
>> is the correct directory separator in VMS?, and (2) is there a built-in
>> means of getting the same information?
>>
>> Thanks,
>>
>> Ben
>>
>> ;------START
>> FUNCTION SYSSEP
>>
>> Case StrLowCase(!Version.OS_Family) of
>> 'unix': Return, '/'
>> 'win': Return,'\'
>> 'macos': Return,':'
>> 'vms': Return, ''
>> Else: Return, ''
>> EndCase
>>
>> End
>> ;---------END
>
> Paul van Delst is correct that "." separates subdirectories in VMS.
> However, the most frequent use that I've seen for a case statement like
> the above is to separate the directory specification from a file name.
> In that case you'd want "]". To complete Paul's example:
>
> DISK$NAME1:[PAULV.DIR.SUBDIR.SUBSUBDIR]filename.ext
>
In VMS you may also get a file path define via a logical such as:
$ DEFINE DIR_PATH DISK$NAME1:[PAULV.DIR.SUBDIR.SUBSUBDIR]
in which case the above file spec becomes DIR_PATH:filename.ext
So you also need to search for ":" as well as "]". To do this you can
use a regular expression as show below.
;----------------------------------------------------------- --
Function ExtrFileName, FullFileSpec
; Given the full file spec extract the file name. (vms case)
f= StrSplit(FullFileSpec,'^*:|^*\]',/Extract)
f = f[N_Elements(f)-1]
f= StrSplit(f,';*$',/Extract)
Return, f[0]
End
;----------------------------------------------------------- ---
Regards,
George Constantinides
Manly Hydraulics Laboratory
email: GeorgeC@mhl.nsw.gov.au
URL http://www.mhl.nsw.gov.au
|
|
|