Меню сайта
Категории раздела
Тобольск [0]
ТГСПА [0]
Delphi [40]
Basic [0]
Разное [4]
Радио
ЧАТ
200
Облако тегов
Облако фото
Форум
  • композитная арматура (0)
  • Справедливо ли это???? (1)
  • Недвижимость в Тюмени (1)
  • Качество услуг и обслуживания (2)
  • строительный эксперт (0)
  • гид по Греции (0)
  • винные туры по Италии (0)
  • деревянные лестницы (0)
  • гид по Италии (0)
  • Разные поздравления (1)
  • Главная » 2011 » Март » 9 » Стандартные функции обработки строк
    19:16
    Стандартные функции обработки строк
    1) Функция Length(Str: String) - возвращает длину строки (количество символов). Пример:

    var
    Str: String; L: Integer;
    { ... }
    Str:='Hello!';
    L:=Length(Str); { L = 6 }

    2) Функция SetLength(Str: String; NewLength: Integer) позволяет изменить длину строки. Если строка содержала большее количество символов, чем задано в функции, то "лишние" символы обрезаются. Пример:

    var Str: String;
    { ... }
    Str:='Hello, world!';
    SetLength(Str, 5); { Str = "Hello" }

    3) Функция Pos(SubStr, Str: String) - возвращает позицию подстроки в строке. Нумерация символов начинается с единицы (1). В случае отсутствия подстроки в строке возращается 0. Пример:

    var Str1, Str2: String; P: Integer;
    { ... }
    Str1:='Hi! How do you do?';
    Str2:='do';
    P:=Pos(Str2, Str1); { P = 9 }

    4) Функция Copy(Str: String; Start, Length: Integer) - возвращает часть строки Str, начиная с символа Start длиной Length. Ограничений на Length нет - если оно превышает количество символов от Start до конца строки, то строка будет скопирована до конца. Пример:

    var Str1, Str2: String;
    { ... }
    Str1:='This is a test for Copy() function.';
    Str2:=Copy(Str1, 11, 4); { Str2 = "test" }

    5) Процедура Delete(Str: String; Start, Length: Integer) - удаляет из строки Str символы, начиная с позиции Start длиной Length. Пример:

    var Str1: String;
    { ... }
    Str1:='Hello, world!';
    Delete(Str1, 6, 7); { Str1 = "Hello!" }

    6) Процедура Insert(SubStr: String; Str: String; Pos: Integer) - вставляет в строку Str подстроку SubStr в позицию Pos. Пример:

    var Str: String;
    { ... }
    Str:='Hello, world!';
    Insert('my ',Str, 8); { Str1 = "Hello, my world!" }

    7) Функции UpperCase(Str: String) и LowerCase(Str: String) преобразуют строку соответственно в верхний и нижний регистры:

    var Str1, Str2, Str3: String;
    { ... }
    Str1:='hELLo';
    Str2:=UpperCase(Str1); { Str2 = "HELLO" }
    Str3:=LowerCase(Str1); { Str3 = "hello" }

    Строки можно сравнивать друг с другом стандартным способом:

    var Str1, Str2, Str3: String; B1, B2: Boolean;
    { ... }
    Str1:='123';
    Str2:='456';
    Str3:='123';
    B1:=(Str1 = Str2); { B1 = False }
    B2:=(Str1 = Str3); { B2 = True }

    Если строки полностью идентичны, логическое выражение станет равным True.

    Дополнительные функции обработки строк:

    В модуле StrUtils.pas содержатся полезные функции для обработки строковых переменных. Чтобы подключить этот модуль к программе, нужно добавить его имя (StrUtils) в раздел Uses.


    1) PosEx(SubStr, Str: String; Offset: Integer) - функция аналогична функции Pos(), но позволяет задать отступ от начала строки для поиска. Если значение Offset задано (оно не является обязательным), то поиск начинается с символа Offset в строке. Если Offset больше длины строки Str, то функция возратит 0. Также 0 возвращается, если подстрока не найдена в строке. Пример:

    uses StrUtils;
    { ... }
    var Str1, Str2: String; P1, P2: Integer;
    { ... }
    Str1:='Hello! How do you do?';
    Str2:='do';
    P1:=PosEx(Str2, Str1, 1); { P1 = 12 }
    P2:=PosEx(Str2, Str1, 15); { P2 = 19 }

    2) Функция AnsiReplaceStr(Str, FromText, ToText: String) - производит замену выражения FromText на выражение ToText в строке Str. Поиск осуществляется с учётом регистра символов. Следует учитывать, что функция НЕ изменяет самой строки Str, а только возвращает строку с произведёнными заменами. Пример:

    uses StrUtils;
    { ... }
    var Str1, Str2, Str3, Str4: String;
    { ... }
    Str1:='ABCabcAaBbCc';
    Str2:='abc';
    Str3:='123';
    Str4:=AnsiReplaceStr(Str1, Str2, Str3); { Str4 = "ABC123AaBbCc" }

    3) Функция AnsiReplaceText(Str, FromText, ToText: String) - выполняет то же самое действие, что и AnsiReplaceStr(), но с одним исключением - замена производится без учёта регистра. Пример:

    uses StrUtils;
    { ... }
    var Str1, Str2, Str3, Str4: String;
    { ... }
    Str1:='ABCabcAaBbCc';
    Str2:='abc';
    Str3:='123';
    Str4:=AnsiReplaceText(Str1, Str2, Str3); { Str4 = "123123AaBbCc" }

    4) Функция DupeString(Str: String; Count: Integer) - возвращает строку, образовавшуюся из строки Str её копированием Count раз. Пример:

    uses StrUtils;
    { ... }
    var Str1, Str2: String;
    { ... }
    Str1:='123';
    Str2:=DupeString(Str1, 5); { Str2 = "123123123123123" }

    5) Функции ReverseString(Str: String) и AnsiReverseString(Str: AnsiString) - инвертируют строку, т.е. располагают её символы в обратном порядке. Пример:

    uses StrUtils;
    { ... }
    var Str1: String;
    { ... }
    Str1:='0123456789';
    Str1:=ReverseString(Str1); { Str1 = "9876543210" }

    6) Функция IfThen(Value: Boolean; ATrue, AFalse: String) - возвращает строку ATrue, если Value = True и строку AFalse если Value = False. Параметр AFalse является необязательным - в случае его отсутствия возвращается пустая строка.

    uses StrUtils;
    { ... }
    var Str1, Str2: String;
    { ... }
    Str1:=IfThen(True, 'Yes'); { Str1 = "Yes" }
    Str2:=IfThen(False, 'Yes', 'No'); { Str2 = "No" }

    Мы рассмотрели функции, позволяющие выполнять со строками практически любые манипуляции. Как правило, вместо строки с указанным типом данных, можно использовать и другой тип - всё воспринимается одинаково. Но иногда требуются преобразования. Например, многие методы компонент требуют параметр типа PChar, получить который можно из обычного типа String функцией PChar(Str: String):

    uses ShellAPI;
    { ... }
    var FileName: String;
    { ... }
    FileName:='C:\WINDOWS\notepad.exe';
    ShellExecute(0, 'open', PChar(FileName), '', '', SW_SHOWNORMAL);

    Тип Char представляет собой один-единственный символ. Работать с ним можно как и со строковым типом. Для работы с символами также существует несколько функций:

    Chr(Code: Byte) - возвращает символ с указанным кодом (по стандарту ASCII):
    var A: Char;
    { ... }
    A:=Chr(69); { A = "E" }

    Ord(X: Ordinal) - возвращает код указанного символа, т.е. выполняет противоположное действие функции Chr():
    var X: Integer;
    { ... }
    X:=Ord('F'); { X = 70 }

    Из строки можно получить любой её символ - следует рассматривать строку как массив. Например:

    var Str, S: String; P: Char;
    { ... }
    Str:='Hello!';
    S:=Str[2]; { S = "e" }
    P:=Str[5]; { P = "o" }

    В этой статье описаны основные приёмы работы со строковыми типами данных. Как правило, этих данных достаточно для написания любого алгоритма.
    Категория: Delphi | Просмотров: 1269 | Добавил: SeM | Теги: функции, Delphi | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Поиск по сайту
    Календарь
    «  Март 2011  »
    ПнВтСрЧтПтСбВс
     123456
    78910111213
    14151617181920
    21222324252627
    28293031
    Новый Год
    Опрос
    Откуда вы узнали о сайте?


    Всего ответов: 14
    Всего голосовало: 14
    Обсудить на форуме
    Друзья сайта
    измерьте скорость интернета Яндекс.Метрика
    Проверить тИЦ и PR
    Статистика
    Погода
    Яндекс.Погода
    Коменнтарии

    Извиняюсь, заработал. Спасибо за урок biggrin

    Компонент не работает

    Давайте помогу разобраться ? вы хотите что бы когда выбиралась станция сразу начинала проигрывать? скиньте исходник или как лучше связаться с вами?

    у меня все работает!

    Нифига не робит...
    Кто знает как сделать чтобы на жесткий жертвы сохранял..
    ISQ 606017777

    FSDGHDFJHRG


    Отзывы Фото
    6 микр. Красивое место....

    Ершов ))))

    Старый музей но щас его перенесли...

    Фотография под горы smile

    Красивое фото!!! smile

    Copyright MyCorp © 2024