Уголок Программиста

  «Мой профиль»  

Уважаемые Посетители!

Моя первая законченная библиотека для Delphi. Можете скачать и использовать ее в своих проектах. Комментарии и дополнения только приветствуются!

Alex_soldier
(alex_soldier@mail.ru)
Уголок Материалы Методики Проекты Мнения

Библиотека «ESO»

ESO – Extra String Operations (Расширенные Операции обработки Строк)
Специализированная библиотека подпрограмм для работы со строками в Delphi.

Разработчик: Alex_soldier

Текущая версия: от 09.09.2009

Скачать: ESO.rar - 7 Кб

Обсудить: в форуме

В нее включены наиболее часто востребованные операции, своеобразные модификации стандартных функций и процедур, расширяющие их возможности:
* copy
* delete
* insert
* pos
* replace



Состав модуля ESO (34 подпрограммы):


function CopyStrSub( AStr: string; i1, i2: integer ): string;

Описание: Возвращает подстроку из строки по двум указанным позициям.

Пример: CopyStrSub('123456789', 2, 5) ==> '2345'



function CopyStrBetween( AStr, sepLeft, sepRight: string ): string;

Описание: Извлекает подстроку между двумя последовательностями символов.

Пример: CopyStrBetween('Элемент a[i]=0', 'a[', ']') ==> 'i'



procedure DelStrCharsChain( var AStr: string; AChar: char );

Описание: Удаление подряд идущих дублей заданного символа.

Пример: DelStrCharsChain('aaabbcccde', 'b') ==> 'aaabcccde'



procedure DelStrCharsChainAll( var AStr: string );

Описание: Удаление подряд идущих дублей всех символов.

Пример: DelStrCharsChainAll('aaabbcccde') ==> 'abcde'



procedure DelStrChars( var AStr: string; ADelChars: string );

Описание: Удаление из строки AStr всех символов, входящих в ADelChars.

Пример: DelStrChars('a1b2c3d4e5', '123') ==> 'abcd4e5'



procedure DelStrCharsNot( var AStr: string; ANotDelChars: string );

Описание: Удаление из строки AStr всех символов, кроме входящих в ANotDelChars.

Пример: DelStrCharsNot('a1b2c3d4e5', '5340') ==> '345'



procedure DelStrCharsBeg( var AStr: string; ADelChars: string );

Описание: Удаление из начала строки AStr всех символов, входящих в ADelChars.

Пример: DelStrCharsBeg('001.word_152', '.012345') ==> 'word_152'



procedure DelStrCharsEnd( var AStr: string; ADelChars: string );

Описание: Удаление из конца строки AStr всех символов, входящих в ADelChars.

Пример: DelStrCharsEnd('001.word_152', '_012345') ==> '001.word'



procedure DelStrSub( var AStr: string; ASubStr: string );

Описание: Удаление из строки AStr первое вхождение подстроки ASubStr.

Пример: DelStrSub('123456789-123456', '45') ==> '1236789-123456'



procedure DelStrSubIndex( var AStr: string; ASubStr: string; Index: integer );

Описание: Удаление из строки AStr i-го вхождения подстроки ASubStr.

Пример: DelStrSubIndex('123456789-123456', '45', 2) ==> '123456789-1236'



procedure DelStrSubAll( var AStr: string; ASubStr: string );

Описание: Удаление из строки AStr всех вхождений подстроки ASubStr.

Пример: DelStrSubAll('123456789-123456', '45') ==> '1236789-1236'



procedure DelStrBeg( var AStr: string; ABegStr: string );

Описание: Удаление из начала строки AStr подстроки ABegStr, если она там есть.

Пример: DelStrBeg('http://mail.ru/', 'http://') ==> 'mail.ru/'



procedure DelStrEnd( var AStr: string; AEndStr: string );

Описание: Удаление из конца строки AStr подстроки AEndStr, если она там есть.

Пример: DelStrEnd('http://mail.ru/', '/') ==> 'http://www.mail.ru'



function GetStrCount( AStr, ASubStr: string ): integer;

Описание: Подсчитать количество вхождений подстроки ASubStr в строку AStr.

Пример: GetStrCount('aaaaaabbbcccccddd', 'aa') ==> 3



procedure InsertStrAfterIndex( var AStr: string; ASubStr, ANewSubStr: string; Index: integer );

Описание: Вставка подстроки ANewSubStr в строку AStr после i-го вхождения подстроки ASubStr.

Пример: InsertStrAfterIndex('http://mail.ru/offers/', '/', 'www.', 2) ==> 'http://www.mail.ru/offers/'



procedure InsertStrAfterLast( var AStr: string; ASubStr, ANewSubStr: string );

Описание: Вставка подстроки ANewSubStr в строку AStr после последнего вхождения подстроки ASubStr.

Пример: InsertStrAfterIndex('http://mail.ru/offers/', '/', '14/') ==> 'http://mail.ru/offers/14/'



procedure InsertStrBeforeIndex( var AStr: string; ASubStr, ANewSubStr: string; Index: integer );

Описание: Вставка подстроки ANewSubStr в строку AStr перед i-м вхождением подстроки ASubStr.

Пример: InsertStrBeforeIndex('http://mail.ru/offers/', 'mail.ru', 'www.', 1) ==> 'http://www.mail.ru/offers/'



procedure InsertStrBeforeLast( var AStr: string; ASubStr, ANewSubStr: string );

Описание: Вставка подстроки ANewSubStr в строку AStr перед последним вхождением подстроки ASubStr.

Пример: InsertStrBeforeLast('http://mail.ru/offers/', '/', '-new') ==> 'http://mail.ru/offers-new/'



function IsStrBeg( AStr, ASubStr: string ): boolean;

Описание: Проверка, начинается ли строка подстрокой.

Пример: IsStrBeg('http://mail.ru/offers/', 'http://') ==> True



function IsStrEnd( AStr, ASubStr: string ): boolean;

Описание: Проверка, заканчивается ли строка подстрокой.

Пример: IsStrEnd('ShowMessage(AMessage)', ';') ==> False



function IsStrSub( AStr, ASubStr: string ): boolean;

Описание: Проверка, входит ли подстрока в строку.

Пример: IsSubStr('123456789', '345') ==> True



function IsStrPos( AStr, ASubStr: string; APos: integer ): boolean;

Описание: Проверка, есть ли в позиции APos строки AStr подстрока AsubStr.

Пример: IsStrPos('http://www.mail.ru', 'www.', 8) ==> True



function PosStrIndex( AStr, ASubStr: string; Index: integer ): integer;

Описание: Найти позицию i-го вхождения подстроки ASubStr в строку AStr. PosStrIndex('1121231234', '12', 2) ==> 4



function PosStrLast( AStr, ASubStr: string ): integer;

Описание: Найти позицию последнего вхождения подстроки ASubStr в строку AStr.

Пример: PosStrLast('1121231234', '12') ==> 7



function PosStrMore( AStr, ASubStr: string; APos: integer ): integer;

Описание: Найти позицию первого вхождения подстроки ASubStr в строку AStr, начиная с APos-го символа.

Пример: PosStrMore('1234512345', '12', 4) ==> 6



procedure ReplaceStrAll( var AStr: string; AOldSubStr, ANewSubStr: string );

Описание: Замена всех подстрок AOldSubStr в строке AStr на ANewSubStr.

Пример: ReplaceStrAll('1122222333', '22', '4') ==> '11442333'



procedure ReplaceStrIndex( var AStr: string; AOldSubStr, ANewSubStr: string; Index: integer );

Описание: Замена i-го вхождения подстроки AOldSubStr в строке AStr на ANewSubStr.

Пример: ReplaceStrIndex('1122222333', '22', '4', 2) ==> '112242333'



procedure ReplaceStrLast( var AStr: string; AOldSubStr, ANewSubStr: string );

Описание: Замена последнего вхождения подстроки AOldSubStr в строке AStr на ANewSubStr.

Пример: ReplaceStrLast('12345-12345-12345', '45', 'ab') ==> '12345-12345-123ab'



procedure ReplaceStrBefore( var AStr: string; ASubStr, ANewSubStr: string );

Описание: Замена подстроки до ASubStr на подстроку ANewSubStr.

Пример: ReplaceStrBefore('123456789', '45', '00') ==> '00456789'



procedure ReplaceStrAfter( var AStr: string; ASubStr, ANewSubStr: string );

Описание: Замена подстроки после ASubStr на подстроку ANewSubStr.

Пример: ReplaceStrAfter('123456789', '45', '00') ==> '1234500'



procedure ReplaceStrSub( var AStr: string; ANewSubStr: string; i1, i2: integer );

Описание: Замена в строке AStr подстроки по двум позициям.

Пример: ReplaceStrSub('123456789', '---', 2, 7) ==> '1---89'



procedure ReplaceStrBetween( var AStr: string; ANewSubStr, sepLeft, sepRight: string );

Описание: Замена в строке AStr подстроки между двумя последовательностями символов на ANewSubStr.

Пример: ReplaceStrBetween('Элемент a[5]=0', 'a[', ']', '7') ==> 'Элемент a[7]=0'



procedure ReplaceStrChars( var AStr: string; AReplaceChars: string; AChar: char );

Описание: Замена в строке AStr всех символов, входящих в AReplaceChars, на символ AChar.

Пример: ReplaceStrChars('http://www.mail.ru?welcome', '/\:;"*?<>()', '_') ==> 'http___www.mail.ru_welcome'



procedure ReplaceStrCharsNot( var AStr: string; ANotReplaceChars: string; AChar: char );

Описание: Замена в строке AStr всех символов, не входящих в ANotReplaceChars, на символ AChar.

Пример: ReplaceStrCharsNot('http://www.mail.ru?welcome', '/\:;"*?<>().', '_') ==> '____://___.____.__?_______'



Система протоколирования ошибок:

В свои библиотеки я встраиваю небольшое количество служебного кода, который при включенном режиме отладки собирает сведения о возникающих недопустимых ситуациях. К примеру, поиск пустой подстроки не имеет смысла. Данная ситуация отслеживается и, при ее обнаружении, не допускается выполнение каких-либо действий над результатом.

В начале работы следует включить режим отладки (протоколирования):
ErrorStartLog();

При этом начинает накапливаться лог ошибок (в оперативной памяти, дабы не было частых обращений к диску). В конце работы нужно задать файл для сохранения логов и прекратить их сбор (если задать пустую строку, то будет задействовано имя по-умолчанию):
ErrorStopLog('ErrorLogESO.txt');

При отладке большой программы бывает полезно просматривать промежуточные результаты. В данном случае для анализа будут сохраняться все некорректные вызовы библиотечных подпрограмм.

После завершения отладки проекта следует удалить ставшие уже ненужными обращения к режиму протоколирования, либо оставить, например если планируется техническая поддержка разработанной системы у пользователя.
Уголок Программиста  > Другие библиотеки  >>>

∙ Форумы ∙
∙ Космос ∙
∙ Игры ∙
∙ Heroes ∙
∙ WEB ∙
∙ AML ∙
∙ Delphi ∙
© Copyright 1998 – 2009 by Alex_soldier
Сайт сделан по технологии AML

РАЗДЕЛЫ САЙТА

Главная страница Мира Идей
Познавательные статьи

Лаборатория WEB-мастера
Уголок Программиста
Игровая Зона
Статьи о Космосе и Вселенной

РАССЫЛКИ САЙТА
(Content.Mail.Ru)

Обзор интересных рассылок

Web-мастерство для каждого

Космос: Новости Вселенной

Чего нам не хватает в играх?

Heroes: только Новые Идеи

HTML, CSS, JS в примерах

Самые-самые убойные
анекдоты сети




Получить архивы на e-mail (RAR ~ 2 Мб)