Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.033 c
4-1097143732
mtihonov
2004-10-07 14:08
2004.11.21
Переключение окон


3-1098770649
AlexTregubov
2004-10-26 10:04
2004.11.21
Fast Report


3-1098357329
top100
2004-10-21 15:15
2004.11.21
Автоподбор ширины строки в FastReport


4-1097498188
Comp
2004-10-11 16:36
2004.11.21
Подсказки на ToolBar


14-1099718506
Александр1
2004-11-06 08:21
2004.11.21
NTFS