Неверов Евгений Викторович

Российская общественная инициатива (РОИ)

Вашему вниманию на интернет-ресурсе РОИ размещены следующие общественные инициативы:

  1. Увеличить заработную плату учителям школы.
  2. Запретить работодателям увольнять работников, защищающих свои трудовые права в суде.

Для голосования вы должны быть авторизованы через ЕСИА.

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

Онлайн всего: 6
Гостей: 6
Пользователей: 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) выведет пустую строку.

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

function CopyS(s: string; index: byte; c: char): string;
var p: integer;
begin
   Result:='';
   if index<1 then
      index:=1;
   while index>0 do
   begin
      Dec(index);
      p:=Pos(c, s);
      if index=0 then
      begin
         if p=0 then
            Result:=s else
            Result:=Copy(s, 1, p-1);
         Exit;
      end;
      if p>0 then
         Delete(s, 1, p) else
         Exit;
   end;
end;

где:

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

Например,

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