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