Paths on different OS's

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Paths on different OS's

L505
Could someone tell me the way forward and backward slashes are handled easily?

For example this is sort of code bloat below
Is there some way around this:

{$ifdef unix}
path:= ExtractFileDir(paramstr(0)+'/somepath/directory/etc/';

{$ifdef win32}
path:= ExtractFileDir(paramstr(0)+'\somepath\directory\etc\';

Thank you.

 


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

Michael Van Canneyt


On Thu, 14 Jul 2005, L505 wrote:

> Could someone tell me the way forward and backward slashes are handled easily?
>
> For example this is sort of code bloat below
> Is there some way around this:
>
> {$ifdef unix}
> path:= ExtractFileDir(paramstr(0)+'/somepath/directory/etc/';

Path:=ExtractFileDir(ParamStr(0)+PathDelim+'SomePath'+PatHDelim+'Directory'+PatHDelim+'etc'+PathDelim;

Is cross platform, or

Path:=ExtractFileDir(SetDirSeparators(paramstr(0)+'\somepath\directory\etc\'));

DoDirSeparators is the same as SetDirSeparators, but operates on a var param.

All these functions are in sysutils, and are documented.

Michael.

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

RE: Paths on different OS's

Michael Preslar
In reply to this post by L505
I always do something like this:

{$ifdef UNIX}
const dirsep = '/';
{$else}
const dirsep = '\';
{$endif}

path := ExtractFileDir(paramstr(0) + dirsep + 'somepath' + dirsep +
'directory' + 'etc' + dirsep);

Id imagine that one of fpc's units already has something very similar to
this.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of L505
Sent: Thursday, July 14, 2005 1:33 PM
To: FPC-Pascal users discussions
Subject: [fpc-pascal] Paths on different OS's


Could someone tell me the way forward and backward slashes are handled
easily?

For example this is sort of code bloat below
Is there some way around this:

{$ifdef unix}
path:= ExtractFileDir(paramstr(0)+'/somepath/directory/etc/';

{$ifdef win32}
path:= ExtractFileDir(paramstr(0)+'\somepath\directory\etc\';

Thank you.

 


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

L505


| I always do something like this:
|
| {$ifdef UNIX}
| const dirsep = '/';
| {$else}
| const dirsep = '\';
| {$endif}
|
| path := ExtractFileDir(paramstr(0) + dirsep + 'somepath' + dirsep +
| 'directory' + 'etc' + dirsep);
|
| Id imagine that one of fpc's units already has something very similar to
| this.

That's a good tip.. Yeah, so if anyone knows.. is there something like this
already in a unit somewhere that should be used as a standard directory
separator variable?




_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

Michael Van Canneyt


On Thu, 14 Jul 2005, L505 wrote:

>
>
> | I always do something like this:
> |
> | {$ifdef UNIX}
> | const dirsep = '/';
> | {$else}
> | const dirsep = '\';
> | {$endif}
> |
> | path := ExtractFileDir(paramstr(0) + dirsep + 'somepath' + dirsep +
> | 'directory' + 'etc' + dirsep);
> |
> | Id imagine that one of fpc's units already has something very similar to
> | this.
>
> That's a good tip.. Yeah, so if anyone knows.. is there something like this
> already in a unit somewhere that should be used as a standard directory
> separator variable?

PathDelim (in sysutils, delphi compatible)
or
DirectorySeparator (FPC native, defined in system)

Michael.

>
>
>
>
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

A.J. Venter
In reply to this post by L505

>
> That's a good tip.. Yeah, so if anyone knows.. is there something like this
> already in a unit somewhere that should be used as a standard directory
> separator variable?
>
Not sure which unit it's from, sysutils I think, but there is a predeclared
constant PATHDELIM which auto-adjusts for the OS you're compiling to.

A.J.

--
A.J. Venter
Lead Developer - Direq International
+27 82 726 5103
Fax: 0866542898
http://direq.org
http://silentcoder.co.za

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

L505
In reply to this post by Michael Van Canneyt
|
Path:=ExtractFileDir(ParamStr(0)+PathDelim+'SomePath'+PatHDelim+'Directory'+PatH
Delim+'etc'+PathDelim;
|
| Is cross platform, or
|
|
Path:=ExtractFileDir(SetDirSeparators(paramstr(0)+'\somepath\directory\etc\'));
|
| DoDirSeparators is the same as SetDirSeparators, but operates on a var param.
|
| All these functions are in sysutils, and are documented.
|

Thanks, I remember coming across them in the docs somewhere before!
The second example you mentioned might be easier on the eyes in the source code.
A little extra CPU, but oh well.


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

Marc Perkel
How do I get removed from this list?

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Paths on different OS's

Marco van de Voort
> How do I get removed from this list?
>
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal

There is an URL appended to each post? :-)

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal