Convert from Absolute to Relative Paths

Jim Ault JimAultWins at yahoo.com
Thu Jun 7 11:09:32 EDT 2007


Quick programming note:
>   put the itemdelimiter into originalDelim
>  ...
>     set the itemdelimiter to originalDelim

is not necessary the way you have structured your function.  Rev will
consider the itemDelimiter at the start of each handler to be the default
itemDelimiter, which is usually a comma.

" set the itemdelimiter to "/"  --is not a global setting that applies to
all handlers and all scripts, only the current one.

However, in Applescript,the  text item delimiter is a global setting, so
storing the old, and resetting is the best idea.

Hope this helps.

Jim Ault
Las Vegas

On 6/7/07 7:42 AM, "David Bovill" <david at openpartnership.net> wrote:

> function file_GetRelativePath someFileOrFolder, baseFolder, @commonPath
>     put the itemdelimiter into originalDelim  -->
>     set the itemdelimiter to "/"
>     put empty into commonPath
>     put someFileOrFolder into relativePath
>     put 0 into itemNum
>     repeat with itemNum = 1 to the number of items of baseFolder
>         put item itemNum of baseFolder into basePathComponent
>         put item itemNum of someFileOrFolder into somePathComponent
> 
>         if somePathComponent is basePathComponent then
>             next repeat
>         else
>             subtract 1 from itemNum
>             exit repeat
>         end if
>     end repeat
> 
>     put item 1 to itemNum of someFileOrFolder into commonPath
>     delete item 1 to itemNum of relativePath
> 
>     delete item 1 to itemNum of baseFolder
>     put the number of items of baseFolder into upBits
>     repeat upBits
>         put "../" before relativePath
>     end repeat
> 
>     set the itemdelimiter to originalDelim
>     put "/" after commonpath
>     return relativePath
> end file_GetRelativePath





More information about the use-livecode mailing list