![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
КАК? [D5, NT4]
Dennn_is © (2002-06-18 08:49:00)Уважаемые Мастера! Как мне получить имя файла если имеется путь к нему? Например, я с помощью функции ExtractFilePath(paramstr(0))получаю путь к файлу start.exe: C:\Programm\
А как мне получить имя этого файла в виде: start.exe? Спасибо.
SuperUmnik (2002-06-18 10:33:00) [1]если собственное имя файла нужно определить то можно Application.ExeName;
А Грей Фокс все работает у тебя до тех пор пока кто нить не додумается в название папки вставить точку!)))или в названии файла! (Попробуй сам)
У меня жена любит названия присваивать папкам такие что бы враги не догодались типа П.15_.34ВК !!! вот и интересно как у тебя будет что то работать если такой же User попадется!
Игорь Шевченко (2002-06-18 10:26:00) [2]GrayFox (18.06.02 10:20)
Речь шла про ParamsStr(0)
GrayFox (2002-06-18 10:20:00) [3]почти =)
токо вот экстрактфайлнэйм возвратит имя папки если это не файл, а папка и даже не скажет что это не файл, придется тип еще проверять.
MBo (2002-06-18 09:31:00) [4]>GrayFox
не в данном случае, а вообще пригодится функция
LastDelimiter
Игорь Шевченко (2002-06-18 09:28:00) [5]ExcractFileName(ParamStr(0))
GrayFox (18.06.02 09:22)
Извращение :-)
GrayFox (2002-06-18 09:22:00) [6]а я мучился, оказывается есть стандартные функции =)))
function GetFileName(Path:string):string;//результат: имя файла
var
k: integer;
begin
isFile:=false;
if length(Path)>0 then
begin
k:=length(Path);
while ((Path[k]<>"\") and (k>4)) do
begin
dec(k);
if (
((length(Path)-k)<6) and
(Path[k]=".")
)
then isFile:=true;
end;
end;
if isFile then
begin
Result:=copy(form1.FromPathEdit.Text,k+1,length(form1.FromPathEdit.Text)-k+1);
SrcFolder:=copy(form1.FromPathEdit.Text,1,k);
end
else
begin
Result:="";
SrcFolder:=Path;
end;
end;
смысл в том чтоб добраться до слэша, второе: если найдем точку на таком то расстоянии от конца то следовательно это имя файла, затем выковыриваем его, хотя надо поставить еще проверку на размер, ведь папку тоже может содержать точку
MBo (2002-06-18 09:12:00) [7]убрать ExtractFilePath
Dennn_is (2002-06-18 09:10:00) [8]>MBo ©
Пробовал, не выходит.... как написать правильно? я писал так:ExtractFileName(ExtractFilePath(paramstr(0)))
MBo (2002-06-18 08:51:00) [9]ExtractFileName ;)))