How to remove file extension in Pascal

2 Answers

0 votes
program RemoveExtensionDemo;

{$mode objfpc}

uses
  SysUtils;

{
  Removes the last file extension from a filename or path.

  Examples:
    document.pdf      -> document
    archive.tar.gz    -> archive.tar
    photo.jpg         -> photo
    README            -> README
    /tmp/file.txt     -> /tmp/file

  Parameters:
    FileName - The filename or path.

  Returns:
    The filename/path without its last extension.

  Time Complexity: O(n)
}
function RemoveFileExtension(const FileName: string): string;
begin
  Result := ChangeFileExt(FileName, '');
end;

begin
  Writeln(RemoveFileExtension('document.pdf'));
  Writeln(RemoveFileExtension('archive.tar.gz'));
  Writeln(RemoveFileExtension('/tmp/file.txt'));
  Writeln(RemoveFileExtension('README'));
end.


{
run:

document
archive.tar
/tmp/file
README

}

 



answered Oct 12 by avibootz
0 votes
program RemoveExtensionDemo;

{$mode objfpc}

uses
  SysUtils;

{
  Removes the last extension from a filename or path.
}
function RemoveFileExtension(const FileName: string): string;
var
  DotPos: Integer;
begin
  Result := FileName;

  { Find the last dot in the filename }
  DotPos := LastDelimiter('.', FileName);

  { Remove everything from the dot onward }
  if DotPos > 0 then
    Result := Copy(FileName, 1, DotPos - 1);
end;

begin
  Writeln(RemoveFileExtension('document.pdf'));
  Writeln(RemoveFileExtension('archive.tar.gz'));
  Writeln(RemoveFileExtension('/tmp/file.txt'));
  Writeln(RemoveFileExtension('README'));
end.


{
run:

document
archive.tar
/tmp/file
README

}

 



answered Oct 12 by avibootz
...