Согласие на обработку персональных данных.



04.11.2017
Новые видео и статья Функция Odd.

29.10.2017
Новые видео и статья Функция Low.

23.10.2017
Новая задача Даны натуральные числа от 1 до 33.

22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

Раздел: Стандартные функции Паскаля

Функция Copy

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Функция Copy в Паскале копирует часть строки. Синтаксис:

function Copy(S: AStringType;
              Index: Integer;
              Count: Integer) : AStringType;

Здесь AStringType - это любой строковый тип данных.

Второй вариант для динамических массивов:

function Copy(A: DynArrayType;
              Index: Integer;
              Count: Integer) : DynArrayType;

Здесь DynArrayType - это какой-либо динамический массив (о динамических массивах как-нибудь в другой раз).

Функция Copy копирует несколько символов подряд из строки S и возвращает эти символы в виде строки. Первый символ, с которого начинается копирование строки, указан в параметре Index (нумерация символов в строке начинается с единицы слева направо). Количество копируемых символов указано в параметре Count.

Например, вот этот код

str := Copy('123456', 3, 2);

копирует в строку str два символа, начиная с 3-го. То есть после выполнения этого кода в str будет строка '34'.

Если в параметре Count будет указано значение, превышающее длину строки, то результат будет обрезан. Например, вот этот код

str := Copy('123456', 4, 10);

копирует в строку str три символа '456', хотя мы “заказали” копирование 10 символов.

Если в параметре Index будет указано значение, превышающее длину строки, то функция вернёт пустую строку. Например, вот этот код

str := Copy('123456', 15, 2);

вернёт пустую строку, потому что в строке всего 6 символов, а мы указали в качестве первого копируемого символа число 15.

Для динамических массивов функция возвращает новый динамический массив того же типа, что и указанный в параметре А, и копирует количество элементов Count из старого массива, начиная с элемента, определённого параметром Index.

А теперь пример программы.

program funccopy;

uses SysUtils;

var str     : string;
    d, m, y : string;
    im      : integer;

begin
  str := '18.01.2017';
  d := Copy(str, 1, 2);   //d = 18
  m := Copy(str, 4, 2);   //m = 01
  y := Copy(str, 7, 4);   //y = 2017

  im := StrToInt(m);
  case im of
  1 : str := d + ' January ' + y;
  2 : str := d + ' February ' + y;
  3 : str := d + ' March ' + y;
  4 : str := d + ' April ' + y;
  5 : str := d + ' May ' + y;
  6 : str := d + ' June ' + y;
  7 : str := d + ' July ' + y;
  8 : str := d + ' August ' + y;
  9 : str := d + ' September ' + y;
  10: str := d + ' October ' + y;
  11: str := d + ' November ' + y;
  12: str := d + ' December ' + y;
  end;

  WriteLn(str);

  ReadLn;
end.

Не забудьте подключить модуль SysUtils, чтобы использовать функцию StrToInt (её мы изучим как-нибудь в другой раз, а пока только скажу, что она преобразует строку в число).

Программа простая. Если кто не разобрался, то см. видео выше.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика