Login Register
Frontpage Code library Pastebin

GetDirectoryPath

Author: VesQ
Added: 11. huhtikuuta 2011 kello 3.47
Edited: 15. huhtikuuta 2011 kello 22.19
Category: Merkkijonot

Description

Palauttaa kansion, jossa parametrina annettu tiedosto sijaitsee. Palautusarvo riippuu siitä, annettiinko relatiivinen vai absoluuttinen polku - relatiivinen palauttaa relatiivisen polun kansioon ja absoluuttinen vastaavasti absoluuttisen polun.

Code

Select all
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//================================================================================
// GetDirectoryPath-funktio [ VesQ ]
// ---------------------------------
// Palauttaa kansion, jossa parametrina annettu tiedosto sijaitsee.
// Palautusarvo riippuu siitä, annettiinko relatiivinen vai absoluuttinen polku - 
// relatiivinen palauttaa relatiivisen polun kansioon ja absoluuttinen vastaavasti
// absoluuttisen polun.
//================================================================================

// ESIMERKKI
searchAbsolutive$ = "C:\lolwhatadir/asdf/this\maps/Luna.mpc"
searchRelative$ = "media/long\list/of/directories\ukko.bmp"

Print GetDirectoryPath( searchAbsolutive$ )
Print GetDirectoryPath( searchRelative$ )
Print GetDirectoryPath( GetEXEName() )

WaitKey 

// FUNKTIO
Function GetDirectoryPath$( _filePath$ )

    If IsDirectory( _filePath$ ) Then Return _filePath$
    
    searchParam$ = Replace( _filePath$, "/", "\" )
    dirTmp = Len( GetEXEName() ) - 1
    While InStr( searchParam$, "\", dirTmp ) = 0
        dirTmp = dirTmp - 1
        If dirTmp < 1 Then Exit
    Wend 
    
    If dirTmp < 1 Then Return ""
    
    ret$ = Left( searchParam$, dirTmp )
    
    Return ret$
EndFunction 

Comments

No comments. You can be first!

Leave a comment

You must be logged in to comment.