Форум: "Прочее";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
ВнизЦенные примеры кода от начинающих студентов-программистов Найти похожие ветки
← →
Loginov Dmitry © (2006-11-06 20:01) [0]
procedure TForm1.FormCreate(Sender: TObject);
begin
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
if Path[Length(Path)]<>"\" then
Path:=Path+"\";
Такое может поднять настроение с утра :)
← →
Чапаев © (2006-11-06 20:09) [1]Но ведь уже не утро?..
← →
Loginov Dmitry © (2006-11-06 20:11) [2]Так ведь утром еще хотел это написАть
:)
← →
Карелин Артем © (2006-11-06 20:29) [3]Долго искал кнопку посыла и нажал на "добавить" по окончании поиска?
← →
Vovan#2 (2006-11-06 21:02) [4]О-о.. :( я так всегда пишу, а это, оказывается, неправильно...
← →
Карелин Артем © (2006-11-06 21:10) [5]
> Vovan#2 (06.11.06 21:02) [4]
Видимо Дима хочет сказать что не знающие об includetrailingbackslash (Дельфи давно не пользовал) чайники все чайники поголовно.
← →
Чапаев © (2006-11-06 21:15) [6]> [5] Карелин Артем © (06.11.06 21:10)
Я о таком не знаю. ;-) Лично я бы написал -- Path:=ExtractFilePath(ParamStr(0)). ExtractFilePath() от ExtractFileDir() тем и отличается, что первый даёт путь со слэшем в конце, а второй -- без.
← →
Карелин Артем © (2006-11-06 21:16) [7]Меня лично возмутил подход и реализация примера в статьях по шифрованию форм от Логинова Дмитрия на королевстве.
← →
Sergey Masloff (2006-11-06 21:19) [8]Карелин Артем © (06.11.06 21:10) [5]
так она (includetrailingbackslash) то же самое и делает только еще на MBCS проверяет. Не помню точно тоже давно дело было.
Аффтар когда че ругаешь пЕши как надА может мы тоже посмеемся - всякое ж бывает.
← →
Карелин Артем © (2006-11-06 21:26) [9]Если он не пишет и из публики предложений нет, мож над ним посмеяться надо?
← →
Marser © (2006-11-06 21:32) [10]Во-первых, скорее все-таки IncludeTrailingPathDelimiter, а во-вторых, странно смотреть на работу программиста, который не уверен в результате работы собственного кода. Слэш там должен буть или его там не должно быть, это проверяется один раз.
← →
DVM © (2006-11-06 21:34) [11]код как код, ничего особенного.
← →
DVM © (2006-11-06 21:34) [12]код как код, ничего особенного.
← →
Percent (2006-11-06 21:38) [13]Слэш там должен буть или его там не должно быть, это проверяется один раз.
Что характерно, путь типа "C:\\\\\\\test.txt" тоже является валидным.
То есть, если надо, то можно смело добавлять слеш в конце пути, и не думать о проверке на дублирование.
← →
Чапаев © (2006-11-06 21:46) [14]> [13] Percent (06.11.06 21:38)
Спасибо за инфу. Всё как-то сомнения брали... ;-)
← →
Kolan © (2006-11-06 22:14) [15]> который не уверен в результате работы собственного кода
Аtry
?
Лишняя проверочка не повредит...
Ты всегда уверен что твой код сработает верно? Тогда у тебя в программа НЕТ ошибок, что не верно :)
По сабжу всегда пишу:IncludeTrailindPathDelimiter(ExtractFilePath(...))
← →
Чапаев © (2006-11-06 22:31) [16]> По сабжу всегда пишу: IncludeTrailindPathDelimiter(ExtractFilePath(...))
The resulting string is the leftmost characters of FileName, up to and including the colon or backslash that separates the path information from the name and extension. The resulting string is empty if FileName contains no drive and directory parts.
То бишь если аргументом в твой вариант решения передать "c:qwerty" (файл qwerty в текущем каталоге диска c:), то результатом получим "c:\", то есть КОРНЕВОЙ КАТАЛОГ диска c:.
← →
Чапаев © (2006-11-06 22:32) [17]> "c:qwerty" (файл qwerty в текущем каталоге диска c:)
Гы... А ведь на NTFS это может быть и файловый поток qwerty файла c...
Всё страньше и страньше... :-|
← →
RWolf © (2006-11-07 00:11) [18]
> так она (includetrailingbackslash) то же самое и делает
> только еще на MBCS проверяет.
Ничего она не проверяет, точно так же тупо смотрит на последний символ и добавляет при необходимости бэкслеш. И IncludeTrailingPathDelimiter тоже.
Нормальный код, в общем.
← →
Ice © (2006-11-07 00:38) [19]>Ценные примеры кода от начинающих студентов-программисто
А что тут ценного?
← →
*Стажер* (2006-11-07 00:46) [20]Удалено модератором
← →
Esu © (2006-11-07 00:49) [21]
> Path:=Application.ExeName;
> Path:=ExtractFileDir(Path);
> if Path[Length(Path)]<>"\" then
> Path:=Path+"\";
Я честно говоря не в танке... Тут возможны варианты ?
(по ExtractFileDir в хелпе написано, что точно подходит для определенных функций, глубже не смотрел)
← →
Esu © (2006-11-07 00:53) [22]Посмотрел сорцы, поидее все должно быть однозначно, приведенный код должен возвращать без слеша, правда особой защиты от хакеров там нет :)
← →
Esu © (2006-11-07 00:54) [23]
> особой защиты от хакеров
т.е. никакой нет :)
← →
Loginov Dmitry © (2006-11-07 07:43) [24]Карелин Артем © (06.11.06 21:10) [5]
Видимо Дима хочет сказать что не знающие об includetrailingbackslash (Дельфи давно не пользовал) чайники все чайники поголовно.
Ну зачем же так. Просто код заслуживает похвалы за особые старания его автора.
А насчет чайников все немного наоборот :)
Карелин Артем © (06.11.06 21:16) [7]
Меня лично возмутил подход и реализация примера в статьях по шифрованию форм от Логинова Дмитрия на королевстве.
Что-то страшное?
По секрету: я о подобных статьях слышу в первый раз :)
Sergey Masloff (06.11.06 21:19) [8]
Аффтар когда че ругаешь пЕши как надА может мы тоже посмеемся - всякое ж бывает.
Да где я кого ругал? Просьба ткнуть на этом месте пальцем!
Esu © (07.11.06 0:49) [21]
Я честно говоря не в танке... Тут возможны варианты ?
Ага. Это в [6] :)
← →
Карелин Артем © (2006-11-07 08:16) [25]
> Loginov Dmitry © (07.11.06 07:43) [24]
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=247
← →
Loginov Dmitry © (2006-11-07 09:16) [26]> [25] Карелин Артем © (07.11.06 08:16)
Добавил в закладки. Как нибудь почитаю.
← →
Anatoly Podgoretsky © (2006-11-07 11:39) [27]> RWolf (07.11.2006 00:11:18) [18]
> Нормальный код, в общем.
Нормальный бы был, если бы вместо Dir использовался Path
← →
Anatoly Podgoretsky © (2006-11-07 15:20) [28]> Esu (07.11.2006 00:53:22) [22]
> Посмотрел сорцы, поидее все должно быть однозначно, приведенный код должен возвращать без слеша, правда особой защиты от хакеров там нет :)
Ошибаешься, посмотри для головной папке, соответственно потребуются лишнии не нужные проверки, в обе стороны.
← →
Sergey Masloff (2006-11-08 06:39) [29]Карелин Артем © (07.11.06 08:16) [25]
Это просто полный тезка.
← →
Sergey Masloff (2006-11-08 06:47) [30]RWolf © (07.11.06 00:11) [18]
>> так она (includetrailingbackslash) то же самое и делает
>> только еще на MBCS проверяет.
>Ничего она не проверяет,
function IsPathDelimiter(const S: string; Index: Integer): Boolean;
begin
Result := (Index > 0) and (Index <= Length(S)) and (S[Index] = PathDelim)
and (ByteType(S, Index) = mbSingleByte); <<==== Што это?!!!
end;
>точно так же тупо смотрит на последний символ и добавляет при >необходимости бэкслеш. И IncludeTrailingPathDelimiter тоже.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.047 c