Unicode対応ChangeFileExt
Unicode対応ChangeFileExt。
interface
function ChangeFileExtW(sFile, sExt: WideString): WideString;
implementation
function ChangeFileExtW(sFile, sExt: WideString): WideString;
//Unicode対応ChangeFileExt。
var
i: Integer;
begin
Result := '';
if (sExt <> '') and (sExt[1] <> '.') then begin
//sExtが空文字でなく頭がピリオドがなければつけたす。
sExt := '.' + sExt;
end;
for i := Length(sFile) downto 1 do begin
if (sFile[i] = '\') or (sFile[i] = ':') then begin
//拡張子なし
Result := sFile + sExt;
Break;
end else if (sFile[i] = '.') then begin;
//拡張子あり
if (i > 1) then begin
Result := Copy(sFile, 1, i -1) + sExt;
end else begin
Result := sExt;
end;
Break;
end;
end;
if (Result = '') then Result := sExt;
end;
オリジナルのChangeFileExtと違い、sExtの頭にピリオドがついていなければ付け足します。
if (sExt <> '') and (sExt[1] <> '.') then begin
//sExtが空文字でなく頭がピリオドがなければつけたす。
sExt := '.' + sExt;
end;
この部分をコメントアウトすればオリジナルと同じ動作になると思います。