- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
var s2 := 'Hello';
var s1 := s2;
s1[2] := 'a';
строка s2 не изменится. Аналогично при передаче строки по значению в подпрограмму создается копия строки, т.е. обеспечивается поведение, характерное для Delphi Object Pascal, а не для .NET.
Однако, строке можно присвоить nil, что необходимо для работы с NET-кодом.
Кроме того, в PascalABC.NET реализованы размерные строки. Для их описания используется тип string[n], где n - константа целого типа, указывающая длину строки. Размерные строки, в отличие от обычных, можно использовать как компоненты типизированных файлов. Для совместимости с Delphi Object Pascal в стандартном модуле описан тип shortstring=string[255].
Стандартные подпрограммы работы со строками.
Члены класса string.
Методы типа stringТип string в PascalABC.NET является классом и содержит ряд свойств, статических и экземплярных методов, а также методов расширения.
В методах класса string считается, что строки индексируются с нуля. Кроме того, ни один метод не меняет строку, т.к. строки в .NET являются неизменяемыми.
Свойства класса StringСвойство
Описание
s[i]
Индексное свойство. Возвращает или позволяет изменить i-тый символ строки s. Строки в PascalABC.NET индексируются от 1.
Length: integer
Возвращает длину строки
Статические методы класса String
Метод
Описание
String.Compare(s1,s2: string): integer
Сравнивает строки s1 и s2. Возвращает число <0 если s1<s2, =0 если s1=s2 и >0 если s1>s2
String.Compare(s1,s2: string; ignorecase: boolean): integer
То же. Если ignorecase=True, то строки сравниваются без учета регистра букв
String.Format(fmtstr: string, params arr: array of object): string;
Форматирует параметры arr согласно форматной строке fmtstr
String.Join(ss: array of string; delim: string): string
Возвращает строку, полученную слиянием строк ss с использованием delim в качестве разделителя
Экземплярные методы класса String
Отметим, что все экземплярные методы не меняют строку, как это может показаться на первый взгляд, а при необходимости возвращают измененную строку. Кроме того, считается, что символы в сроке индексируются с нуля.
Метод
Описание
Contains(s: string): boolean
Возвращает True, если текущая строка содержит s, и False в противном случае
EndsWith(s: string): boolean
Возвращает True, если текущая строка заканчивается на s, и False в противном случае
IndexOf(s: string): integer
Возвращает индекс первого вхождения подстроки s в текущую строку или -1 если подстрока не найдена
IndexOf(s: string; start,count: integer): integer
Возвращает индекс первого вхождения подстроки s в текущую строку или -1 если подстрока не найдена. Поиск начинается с символа с номером start и распространяется на следующие count символов
IndexOfAny(cc: array of char): integer
Возвращает индекс первого вхождения любого символа из массива сс
Insert(from: integer; s: string): string
Возвращает строку, полученную из исходной строки вставкой подстроки s в позицию from
LastIndexOf(s: string): integer
Возвращает индекс последнего вхождения подстроки s в текущую строку
LastIndexOf(s: string; start,count: integer): integer
Возвращает индекс последнего вхождения подстроки s в текущую строку или -1 если подстрока не найдена. Поиск начинается с символа с номером start и распространяется на следующие count символов
LastIndexOfAny(a: array of char): integer
Возвращает индекс последнего вхождения любого символа из массива сс
PadLeft(n: integer): string
Возвращает строку, полученную из исходной строки выравниванием по правому краю с заполнением пробелами слева до длины n
PadRight(n: integer): string
Возвращает строку, полученную из исходной строки выравниванием по левому краю с заполнением пробелами справа до длины n
Remove(from,len: integer): string
Возвращает строку, полученную из исходной строки удалением len симолов с позиции from
Replace(s1,s2: string): string
Возвращает строку, полученную из исходной строки заменой всех вхождений подстроки s1 на строку s2
Split(params delim: array of char): array of string
Возвращает массив строк, полученный расщеплением исходной строки на слова, при этом в качестве разделителей используется любой из символов delim (по умолчанию - пробел)
StartsWith(s: string): boolean
Возвращает True, если текущая строка начинается на s, и False в противном случае
Substring(from,len: integer): string
Возвращает подстроку исходной строки с позиции from длины len
ToCharArray: array of char
Возвращает динамический массив символов исходной строки
ToLower: string
Возвращает строку, приведенную к нижнему регистру
ToUpper: string
Возвращает строку, приведенную к верхнему регистру
Trim: string
Возвращает строку, полученную из исходной удалением лидирующих и завершающих пробелов
TrimEnd(params cc: array of char): string
Возвращает строку, полученную из исходной удалением завершающих символов из массива cc
TrimStart(params cc: array of char): string
Возвращает строку, полученную из исходной удалением лидирующих символов из массива cc
Методы расширения класса StringНекоторые методы расширения - стандартные для .NET, некоторые реализованы только в PascalABC.NET.
Метод
Описание
Inverse: string
Возвращает инверсию строки
Выводит буквы строки, разделенные пробелом
Println
Выводит буквы строки, разделенные пробелом, и осуществляет переход на новую строку
ReadInteger(var from: integer): integer
Считывает из строки целое число с позиции from и возвращает его. Позиция from при этом увеличивается на считанный элемент
ReadReal(var from: integer): real
Считывает из строки вещественное число с позиции from и возвращает его. Позиция from при этом увеличивается на считанный элемент
ReadWord(var from: integer): string
Считывает из строки слово до пробела или до конца строки с позиции from и возвращает его. Позиция from при этом увеличивается на считанный элемент
ToInteger: integer
Преобразует строку к целому и возвращает его. Если это невозможно, генерируется исключение
ToIntegers: array of integer
В строке должны храниться целые, разделенные пробелами. Возвращается массив целых. Если это невозможно, генерируется исключение
ToReal: real
Преобразует строку к вещественному и возвращает его. Если это невозможно, генерируется исключение
ToReals: array of real
В строке должны храниться вещественные, разделенные пробелами. Возвращается массив вещественных. Если это невозможно, генерируется исключение
ToWords(params delim: array of char): array of string
Возвращает массив строк, полученный расщеплением исходной строки на слова, при этом в качестве разделителей используется любой из символов delim (по умолчанию - пробел). В отличие от s.Split не включает в итоговый массив пустые строки. В частности, это означает, что слова могут быть разделены несколькими разделителями delim
Массивы
Массив представляет собой набор элементов одного типа, каждый из которых имеет свой номер, называемый индексом (индексов может быть несколько, тогда массив называется многомерным).
Массивы в PascalABC.NET делятся на статические и динамические.
При выходе за границы изменения индекса в PascalABC.NET всегда генерируется исключение.
Статические массивы
Описание статического массиваСтатические массивы в отличие от динамических задают свой размер непосредственно в типе. Память под такие массивы выделяется сразу при описании.
Тип статического массива конструируется следующим образом:
array [тип индекса1, ..., тип индексаN] of базовый тип
Тип индекса должен быть порядковым. Обычно тип индекса является диапазонным и представляется в виде a..b, где a и b - константные выражения целого, символьного или перечислимого типа. Например:
type
MyEnum = (w1,w2,w3,w4,w5);
Arr = array [1..10] of integer;
var
a1,a2: Arr;
b: array ['a'..'z',w2..w4] of string;
c: array [1..3] of array [1..4] of real;

