Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> Очистка строки слева и справа от указанного символа
Функция возвращает строку Str, очищенную слева и справа от указанного символа Symbol. Работает быстрее аналогичной функции UBPFD.TrimEx, так как не использует функцию поиска Pos, имеет более компактный код.
Зависимости: System, SysUtils Автор: lipskiy, lipskiyn@ mail.ru,
***************************************************** }
function TrimString(Str: string; Symbol: char): string; begin Result := Str; if Str = ''then exit; Str := Trim(Str); // Удаляем в начале строки while (length(Str) > 0) and (AnsiUpperCase(Str[1]) = AnsiUpperCase(Symbol)) do Delete(Str, 1, 1); // Удаляем в конце строки while (length(Str) > 0) and (AnsiUpperCase(Str[length(Str)]) = AnsiUpperCase(Symbol)) do Delete(Str, length(Str), 1); Result := Str; end; |
Code: |
{ **** UBPFD *********** by delphibase.endimus **** >> Очистка строки слева и справа от указанных символов
Функция возвращает word, очищеный от начальных и конечных символов, которые попадают в строку TrimSymbols. Например, ShowMessage (TrimEx('<MegaTeg>', '<>')), выведет сообщение "MegaTeg" (без кавычек).
Зависимости: system, sysutils Автор: VID, vidsnap @ mail.ru, ICQ:132234868, Махачкала Copyright: VID
***************************************************** }
function TrimEX(Word, TrimSymbols: string): string; var x, a, b: Integer; begin Result := Word; if TrimSymbols = ''then exit; Word := Trim(word); if length(word) = 0then exit;
x := 0; repeat x := x + 1; until (pos(ansiuppercase(word[x]), ansiuppercase(TrimSymbols)) = 0) or (x = length(word)); a := x;
x := length(word) + 1; repeat x := x - 1; until (pos(ansiuppercase(word[x]), ansiuppercase(TrimSymbols)) = 0) or (x = 1); b := x;
word := copy(word, a, b - a + 1); result := word; end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!