ЧАСТЬ 1. МЕТОДЫ (26).
1.1. Базовые методы (10). Независимые, построены на своих простых алгоритмах.
Стр_Дополнить() (дополнение справа-слева указанными символами).
Стр_Инверс () ( инверсия – символы справа на лево).
Стр_Коды() (коды символов через ”,” и массив с кодами)
Стр_Символы() (строка из кодов через ”,” или из массива с кодами)
Стр_ЗаменитьСимволы() (замена одних символов на другие).
Стр_ИзМассива() (строка из массива фрагментов через разделитель)
Стр_НайтиВх() ( поиск подстроки (в т.ч справа) с указ. номером вхождения).
Стр_НайтиГр() (Поиск группы символов, входящих в указанный набор символов)
Стр_НайтиЧисл() (Поиск числа , в т. ч справа с указанным номером вхождения)
Стр_Интерпретировать() (в массив, согласно установленному синтаксису)
1.2. Производные методы (12). Собственно, это применение четырёх обобщенных методов-алгоритмов (см. Часть 2)
Стр_Число() (с начала и с конца строки, не ”боиться” нецифровых символов.
Стр_Найти() ( поиск подстроки (в т.ч без учета регистра и справа) с указ. номером вхождения).
Стр_Заменить() (искать ( в т.ч. без учета регистра и справа), и заменять подстроки-разделители ).
Стр_Кусок() (кусок строки между указанными вхождениями разделителя (слева или справа)).
Стр_ЗаменитьКусок() (замена в исходной строке ”куска ” на указанную строку).
Стр_ВМассив() (между указанными вхождениями разделителя (в т.ч. справа и без регистра).
Стр_ПеренестиПоСлогам() (разбить на подстроки ”Жёстко”, с дефисом).
Стр_ПеренестиПоСловам() (разбить на подстроки “Мягко” )
Стр_Разрезать() (“Разрезать” на подстроки указанных длин)
Стр_СокрЛ() (заменить лев. группу "сокращаемых" символов на "строку замены"
Стр_СокрП() (заменить прав. группу "сокращаемых" символов на "строку замены"
Стр_СокрС() (заменить посредине группы "сокращаемых" символов на "строку замены"
Стр_Расширить (расширение до указ. длины за счет увеличения колич. указанных символов)
1.3. Детализованные методы (3). "Препарирование" строки с переносом в таблицу с детальной информацией.
Стр_вТаблВх() (в таблицу согласно системе вложенных разделителей).
Стр_вТаблГр (в таблицу согласно многоуровневому фильтру ).
Стр_вТаблЧисел (в таблицу с числами и фрагментами между ними).
ЧАСТЬ 2. ОБОБЩЕННЫЕ МЕТОДЫ-АЛГОРИМЫ (3).
Стр_Вхождение() (методы ”Найти” и ”Заменить”).
Стр_Фрагменты() (методы ”Кусок”,”ЗаменитьКусок,”ВМассив”,”вТаблВх”).
Стр_Сокр () (методы "СокрЛ","СокрП","СокрС","Расширить”.
Стр_Разбить() (методы “ПеренестиПоСлогам”,”ПеренестиПоСловам”,”Разрезать”).
ЧАСТЬ 3. УНИВЕРСАЛЬНАЯ ФУНКЦИЯ .
Это своего рода условный программный интерфейс, позволяющий
применять к строке сразу несколько методов. Реализован в виде
функции с семью параметрами ("Демо" построено на этой функции):
Стр_(Методы, Подметоды, Вход, Парам1, Парам2, Длины_Номера_Позиции, ДопВыход)
Параметры:
- ” Методы” - несколько ”совмещаемых” и (или) один “монопольный” метод
(односимвольные коды или названия, можно через ",")
- ”Подметоды” - несколько ”совмещаемых” и(или) “монопольный ” варианты
“монопольного” метода (односимвольные коды или названия);
- “Вход” - Строка, или Массив или Таблица значений;
- “Парам1” – строка поиска, замещения, разделители, фильтры;
- “Парам2” - замещающая строка или символы;
- “Длины_Номера_Позиции ” -Число, Числа через разделитель или массив с Числами;
- “ДопВыход ” - Число или Строка или Массив или Таблица значений;
Имена и(или) односимвольные Коды методов-подметодов , а также числа в
(Длины_Номера_Позиции ) могут быть в любом регистре и отделены
любым из следующих разделителей: ”, :;”.
ЧАСТЬ 4. НЕКОТОРЫЕ ПРИМЕРЫ.
ЕстьЧислаВСтроке=(Стр_НайтиЧисл(ВхСтрока)<>Неопределено);
ЕстьЦифрыВСтроке=(Стр_НайтиГр(ВхСтрока,"+0123456789")>0);
ЕстьЛатиница=(Стр_НайтиГр(ВхСтр, Стр_Интерпретировать("lL"))>0);
ЕстьУказанныеЗнаки=(Стр_НнайтиГр(ВхСтр, "+к рогЮ.0р9")>0);
ЕстьНеПечатные=(Стр_НайтиГр(ВхСтр, Стр_Интерпретировать("-l-L-р-Р-П-З-Ц"))>0);
ЧАСТЬ 5. ЗАКЛЮЧЕНИЕ.
Где возможно, обходился одним проходом по строке. Второй проход - обычно уже по фрагментам. Не пользовался встроенной функцией СтрЧислоВхождений().
Использованы встроенные функции : Лев(),Прав()Сред(),СтрДлина()
- (позиционирование и получение части строки -должны быть "быстрыми").