Неверов Евгений Викторович
QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [19]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Мои программы [1]
Описание разработанных автором программ.
Online-программы [2]
Прочее [42]
Свободная тематика
Мини-чат
200
Наш опрос
Как Вы думаете, сколько времени люди проживут на Земле?
Всего ответов: 63
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Выделение текстовой части под номером, разделенным символом в строке

Для начала рассмотрим функцию Copy, которая создает копию части строки (или динамического массива). Она возвращает строку, состоящую из указанных в Count количестве символов, начиная с Index символа. Если Count превышает количество символов, оставшихся в исходной строке, копируются символы от Index до конца строки. Аналогичным образом копируется часть массива. Необходимо помнить, что первый символ строки начинается с 1, а первый элемент массива имеет индекс, равный 0.

function Copy(S: <string or dynamic array>; Index, Count: Integer): string;

где:

  • S – исходная строка (исходный массив);
  • Index – начальная позиция (индекс);
  • Count – количество символов (элементов);

В этой статье рассматривается строка символов.

Например,

  • Copy('Копируется часть строки или массива', 18, 6) выведет 'строки';
  • Copy('Копируется часть строки или массива', 29, 100) выведет 'массива' (можно вместо 100 прописать MaxInt; а если в первом параметре содержится строковая переменная S, можно указать Length(S): Copy(S, 29, Length(S)));
  • Copy('Копируется часть строки или массива', -10, 4) выведет 'Копи' (Упс! Бывает и так!);
  • Copy('Копируется часть строки или массива', 12, -5) выведет '' (пустая строка).

Для "вырезания" части фрагмента текстовой части под номером, разделенным символом, потребуется функция CopyN.

function CopyN(s: string; index: byte; c: char): string;
var i, n, l: integer;
begin
   n:=1;
   l:=0;
   if index<1 then
      index:=1;
   for i:=1 to Length(s) do
   begin
      if s[i]=c then
      begin
         Dec(index);
         if index<=0 then
            Break;
         if index=1 then
            n:=i+1;
      end else
         if index=1 then
            Inc(l);
   end;
   Result:=Copy(s, n, l);
end;

где:

  • s – исходная строка;
  • index – порядковый номер значения;
  • c – разделитель.

Например,

  • CopyN('апрель,июль,февраль,май,август,март,июнь,октябрь,сентябрь', 5, ',') выведет 'август';
  • CopyN('зима лето весна осень', 6, ' ') выведет '' (пустая строка, потому что нет 6-го значения, разделенного пробелами).
Категория: Программирование на языке Паскаль | Добавил: newerow1989 |
Просмотров: 695 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Вход на сайт
Поиск
Друзья сайта
Заработок в Интернете
Для начала необходим Электронный PAYEER® кошелек!
Copyright MyCorp © 2025
Версия для мобильных устройств. Яндекс.Метрика Анализ сайта Проверить мой сайт на ScamAdviser.com