[Pas2js] ExtractFileName function

Michael Van Canneyt michael at freepascal.org
Wed Jul 31 23:03:25 CEST 2019


Hello,

Did you set the PathDelim and AllowDirectorySeparators variables correctly ?

By default they are set to URL separators:

   PathDelim : Char = '/';
   AllowDirectorySeparators : Set of Char = ['/'];

If you want to use the native windows characters you must set them in the
startup of your program, like this:

   PathDelim : Char = '\';
   AllowDirectorySeparators : Set of Char = ['/','\'];

Otherwise it will not work.

Your proposed solution is wrong for unix or the web (URL), 
because you hardcode \ which is correct only on windows.

The nodejsapp unit could probably detect the correct setting and set the
variables automatically.

Michael.

On Wed, 31 Jul 2019, warleyalex via Pas2js wrote:

>
> var
>  fullFileName : string;
>
> begin
>  // Set up a full file name with drive and path
>  fullFileName := 'C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu';
>
> // Show the component parts of this full name
>  console.log('Drive = '+ExtractFileDrive (fullFileName));
>  console.log('Dir   = '+ExtractFileDir   (fullFileName));
>  console.log('Path  = '+ExtractFilePath  (fullFileName));
>  console.log('Name  = '+extractfilename  (fullFileName));
>  console.log('Ext   = '+ExtractFileExt   (fullFileName));
>
>  console.log(ExtractFileName_(fullFileName));
>  console.log(ExtractFileNameWithoutExt_(fullFileName));
>
>
> (* outputs this:
>
>   Drive = C:    // ---> OK
>   Dir   = C:      // ----> should  be C:\Program
> Files\Borland\Delphi7\Projects
>   Path  = C:     //----> should be C:\Program
> Files\Borland\Delphi7\Projects\
>   Name  = \Program Files\Borland\Delphi7\Projects\Unit1.dcu    // --->
> should be Unit1.dcu
>   Ext   = .dcu // ----> OK
>
>   Unit1.dcu     // ---> OK
>   Unit1           // ---> OK
>
> *)
>
>
>
>
>
> --
> Sent from: http://pas2js.38893.n8.nabble.com/
> _______________________________________________
> Pas2js maillist  -  Pas2js at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js


More information about the Pas2js mailing list