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
}