Текущий архив: 2004.11.21;
Скачать: CL | DM;
ВнизВыбираем только то, что нужно Найти похожие ветки
← →
InfMag © (2004-11-07 19:50) [0]Как допустим из полученного текста c:\folder\file.exe оставить только c:\folder\?
← →
begin...end © (2004-11-07 19:53) [1]ExtractFilePath("c:\folder\file.exe") + "?" :-)))
P.S. А чем не устроил мой ответ в соседней ветке?
← →
KilkennyCat © (2004-11-07 19:53) [2]ExtractFilePath(application.exename);
← →
KilkennyCat © (2004-11-07 19:54) [3]и я бы еще проверил на наличие последнего слэша... не помню, остается он или нет под некоторыми виндами?
← →
InfMag © (2004-11-07 19:56) [4]Блин... А вдруг у меня не exe файл, а например dat какой-нибудь?
← →
begin...end © (2004-11-07 19:59) [5]
> [3] KilkennyCat © (07.11.04 19:54)
Ну если в Application.Exename слэш был, то после ExtractFilePath() он останется. Это от версии винды не зависит. Не остаётся он после ExtractFileDir(), вроде бы.
> [4] InfMag © (07.11.04 19:56)
Тогда беда... :-)
← →
Zeqfreed © (2004-11-07 20:01) [6]ExtractFilePath(application.datname); ;)
А если по нормальному:
ExtractFilePath(filename);
← →
InfMag © (2004-11-07 20:04) [7]Спасибо, испробую...
← →
KilkennyCat © (2004-11-07 20:05) [8]
> begin...end © (07.11.04 19:59) [5]
точно! я дир в основном юзал, уже не помню почему...
а проблема была такая: на разных машинах то был слэш, то не был. Из чего и сделал вывод, что под разными виндами, возможно по-разному обрабатывалось.
← →
KilkennyCat © (2004-11-07 20:07) [9]есть еще вариант, что я одновременно и дир, и патч использовал в почти одинаковых местах... поэтому и парился... Вообщем, нельзя в спешке лепить проги.
← →
begin...end © (2004-11-07 20:09) [10]
> KilkennyCat
Скорее второе, т.к. ExtractFileDir() убирает слэш тоже вроде бы независимо от версии... :-)
← →
GuAV © (2004-11-07 20:13) [11]begin...end © (07.11.04 20:09) [10]
Но в зависимости от того корневая ли папка :)
← →
KilkennyCat © (2004-11-07 20:18) [12]ну вы меня просто опят запутали :)
ладно, специально потом посмотрю, где и как он убирается или оставляется... Но от комплекса проверять его наличие, похоже, уже не избавлюсь.
← →
Defunct © (2004-11-07 20:22) [13]KilkennyCat © (07.11.04 20:18) [12]
Да бросьте, и проверять ничего не надо. Просто включите логику.
ExtractFileDir - после выполнения этой функции должна работать команда CD (ChDir), соответственно там слеша быть не должно, а значит его там и нет.
ExtractFilePath - после выполнения этой функции, как правило, к результату прибавляется имя файла, соответственно слеш там быть обязан.
← →
Step[B.M.] (2004-11-07 20:24) [14]Запихнуть путь в строку.
Определить местоположение последнего слэша и выбросить все что за ним находится.
← →
Wish © (2004-11-07 20:27) [15]function GetExePath:string;
var s:string;
begin
s:=ExtractFilePath(paramstr(0));
if s[length(s)]="\" then Delete(s,length(s),1);
Result:=s;
end;
← →
Defunct © (2004-11-07 20:30) [16]да что тут еще что-то думать вот код функций, все здесь однозначно видно:
function ExtractFilePath(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter(PathDelim + DriveDelim, FileName);
Result := Copy(FileName, 1, I);
end;
function ExtractFileDir(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter(PathDelim + DriveDelim, Filename);
if (I > 1) and (FileName[I] = PathDelim) and
(not IsDelimiter( PathDelim + DriveDelim, FileName, I-1)) then Dec(I);
Result := Copy(FileName, 1, I);
end;
Страницы: 1 вся ветка
Текущий архив: 2004.11.21;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.034 c