![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
подскажите функцию добавления косой черты к пути [D7, WinXP]
Wolf © (2008-01-30 13:04:00)Есть путь, например c:\my
Какой функцией можно обработать String чтобы в случае отсутствия в конце косой черты она прибавлялась ?
Чтобы в итоге получилось c:\my\
Anatoly Podgoretsky (2008-01-30 14:52:00) [1]> Palladin (30.01.2008 13:40:14) [14]
Вообще то грамотно написано, а скорость, у него чтоли милионы добавление в цикле
Palladin (2008-01-30 13:40:00) [2]лана, уломали... прелестненькая функция...
ANB (2008-01-30 13:39:00) [3]
> это не функция, это монстр
Монстр - это самопальные извращения. Хотя, каюсь, пока не увидел (случайно !) в справке штатную функцию - тоже клеил слеш в конце :)
clickmaker (2008-01-30 13:37:00) [4]для ФТП, кстати, может использоваться и /
ketmar (2008-01-30 13:34:00) [5]>[9] Palladin ©(30.01.08 13:32)
ну, там куча кода для MBCS. но всё равно SysUtils прилинкован, так что не страшно. и вряд ли именно в этой задаче скорость настолько важна.
{RASkov} (2008-01-30 13:34:00) [6]> [9] Palladin © (30.01.08 13:32)
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;
function IncludeTrailingPathDelimiter(const S: string): string;
begin
Result := S;
if not IsPathDelimiter(Result, Length(Result)) then
Result := Result + PathDelim;
end;
D7
И что же здесь навороченного?)
Palladin (2008-01-30 13:32:00) [7]монстр в плане кучи не нужных вызовов, ты видел ее в SysUtils? ужос... а написана для совместимости с Kylix, мир праху его...
{RASkov} (2008-01-30 13:26:00) [8]...или [4] т.е.
Function Dumb0002(Const s:String):String;
Begin
If s='' Then Result:='' Else
If s[Length(s)] in ['\',':'] Then Result:=s Else Result:=IncludeTrailingPathDelimiter(S);
End;
:)
Тады да, монстр :)
{RASkov} (2008-01-30 13:25:00) [9]> [6] Palladin © (30.01.08 13:23)
> это не функция, это монстр
Какая [2] или [1]? :)
И собственно чем они отличаются?)
Palladin (2008-01-30 13:23:00) [10]
> [4] {RASkov} © (30.01.08 13:15)
это не функция, это монстр
Wolf (2008-01-30 13:16:00) [11]спасибо большое
{RASkov} (2008-01-30 13:15:00) [12]> фу млин Result:=s+'\';
Result:=IncludeTrailingPathDelimiter(S);
:)
Palladin (2008-01-30 13:07:00) [13]
> Result:=Result+'\';
фу млин Result:=s+'\';
Eraser (2008-01-30 13:06:00) [14]IncludeTrailingPathDelimiter
Palladin (2008-01-30 13:06:00) [15]
Function Dumb0002(Const s:String):String;
Begin
If s='' Then Result:='' Else
If s[Length(s)] in ['\',':'] Then Result:=s Else Result:=Result+'\';
End;