Неверов Евгений Викторович
QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [27]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [18]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [0]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Прочее [40]
Свободная тематика
Мини-чат
200
Наш опрос
Чем Вы занимаетесь?
Всего ответов: 55
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Замена символа или фразы в строке на новое значение
function SimwolZamenit(s, simwol_star, simwol_now: string; Registr_star, Registr_now: boolean): string;
var i, LSS: integer;
    sC, SS, SN: string;
begin
   LSS:=Length(simwol_star);
   i:=1;
   While (i<=Length(s)) and (s<>'') do
   begin
      sC:=Copy(s, i, LSS);
      If not Registr_star and not Registr_now then
      begin
         If Registr(sC) then
         begin
            sC:=RegistrWerhniy(sC);
            SS:=RegistrWerhniy(simwol_star);
            SN:=RegistrWerhniy(simwol_now);
         end else
         begin
            sC:=RegistrNizhniy(sC);
            SS:=RegistrNizhniy(simwol_star);
            SN:=RegistrNizhniy(simwol_now);
         end;
      end;
      If Registr_star and not Registr_now then
      begin
         SS:=simwol_star;
         If Registr(simwol_now) then
            SN:=RegistrWerhniy(simwol_now) else
            SN:=RegistrNizhniy(simwol_now);
         If Registr(sC) and Registr(simwol_star) then
            SN:=RegistrWerhniy(simwol_now);
         If not Registr(sC) and not Registr(simwol_star) then
            SN:=RegistrNizhniy(simwol_now);
      end;
      If not Registr_star and Registr_now then
      begin
         SN:=simwol_now;
         If Registr(sC) then
            SS:=RegistrWerhniy(simwol_star) else
            SS:=RegistrNizhniy(simwol_star);
      end;
      If Registr_star and Registr_now then
      begin
         SS:=simwol_star;
         SN:=simwol_now;
      end;
      If (sC=SS) and (sC<>'') then
      begin
         Delete(s, i, LSS);
         Insert(SN, s, i);
         i:=i+Length(SN)-1;
      end;
      i:=i+1;
   end;
   Result:=s;
end;

где

s - исходная строка;

simwol_star - старый символ (фраза);

simwol_now - новый символ (фраза);

Registr_star - соблюдение регистра старого символа;

Registr_now - соблюдение регистра нового символа.

Например, SimwolZamenit('Программист', 'М', 'Н', false, true) выведет 'ПрограННист'; SimwolZamenit('барабАн', 'ба', 'ле', true, false) выведет 'лерабАн'.

Примечание. Для полноценной работы данной функции необходимо скопировать функции из раздела "Операции с регистрами":

function Registr(s: string): boolean;
function RegistrNizhniy(s: string): string;
function RegistrWerhniy(s: string): string;
Категория: Программирование на языке Паскаль | Добавил: newerow1989 (12.03.2016)
Просмотров: 496 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Все смайлы
Код *:
Вход на сайт
Поиск
Друзья сайта
Copyright MyCorp © 2022
Версия для мобильных устройств. Яндекс.Метрика БКНС