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

Функция Copy

Основы программирования 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 (её мы изучим как-нибудь в другой раз, а пока только скажу, что она преобразует строку в число).

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


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

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

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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