![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получить имя файла без расширения [D7, XP]
malyar © (2007-10-23 18:09:00)привет всем
народ подскажите как получить из имени файла с расширением
имя файла без расширения
s:='proga.exe' s:='pr.o.g.a.exe'
как правилино отсеч расширение у выше приведенных файлов?
существует ли функция (поиск вхождения строки в строку) где поиск начинается не сначала а с конца строки ?
Palladin (2007-10-23 18:26:00) [21]
> antonn © (23.10.07 18:24) [8]
пример тебе не верный привели, таким быть должен он (с) Йода :)
file.txt.ext.ext.txt
Amoeba (2007-10-23 18:25:00) [22]
> antonn © (23.10.07 18:24) [8]
>
>
> > а если имя файла, к примеру будет типа хyz.exe.exe (вполене
> > допустимое, между прочим)? Что получим на выходе?
>
> получим хyz.exe
>
Естественно!!!
antonn (2007-10-23 18:24:00) [23]
> а если имя файла, к примеру будет типа хyz.exe.exe (вполене
> допустимое, между прочим)? Что получим на выходе?
получим хyz.exe
Amoeba (2007-10-23 18:20:00) [24]
> Reindeer Moss Eater © (23.10.07 18:16) [3]
Опередил!
Palladin (2007-10-23 18:19:00) [25]у как жестоко :)
Function FileNameWOExt(Const s:String):String;
Var
n:Integer;
Begin
n:=CharPosBack('.',s);
If n=0 Then Result:=s Else Result:=Copy(s,1,n-1);
End;
Amoeba (2007-10-23 18:19:00) [26]
> antonn © (23.10.07 18:14) [2]
а если имя файла, к примеру будет типа хyz.exe.exe (вполене допустимое, между прочим)? Что получим на выходе?
clickmaker (2007-10-23 18:17:00) [27]ChangeFileExt(Filename, '');
Reindeer Moss Eater (2007-10-23 18:16:00) [28]крута
а если proga.exeblablabla.exe ?
antonn (2007-10-23 18:14:00) [29]
function DeleteExtension( Filename : String) : string;
var Ext : String; extl, p : Integer;
begin
Ext := ExtractFileExt(filename);
extl := Length(Ext);
P := Pos(Ext, Filename);
if P <> 0 then begin
Delete(Filename, Length(Filename) - extl + 1 ,extl);
Result := Filename;
end;
end;
Palladin (2007-10-23 18:11:00) [30]ага
Function CharPosBack(c:Char;Const s:String):Integer;
Var
i:Integer;
Begin
For i:=Length(s) Downto 1 Do
If s[i]=c Then
Begin
Result:=i;
Exit;
End;
Result:=0;
End;