Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 21:18   #1
Saren
Пользователь
 
Регистрация: 02.11.2014
Сообщений: 13
По умолчанию Исключить из заданной строки группы символов между скобками '[', ']'

Вот само задание:
Исключить из заданной строки группы символов между скобками '[', ']'. Сами скобки тоже должны быть исключены. Предполагается, что внутри каждой пары скобок нет других скобок.

У меня вопрос: Можете помочь разобраться с кодом т.е. написать комментарий к каждому действию?
Что значит данная строка (P := 0; ) ? и так далее огромное спасибо за ранее.

Ответьте пожалуйста нв вопросы в комментариях.

Этот код я нашел на форуме он выдает правильно все.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  S : String;
  i, Len, P : Integer;
begin
  S := Memo1.Text; //вводим исходный текст.
  Len := Length(S);  // Возвращает количество элементов в строке
  P := 0; // ЧТО ЗАНЧИТ ЭТА ЗНАЧЕНИЕ???
  for i := Len downto 1 do begin //чтО ДЕЛАЕТ ЦИКЛ?
  if S[i] = ']' then
  P := i   //ЧТО ДЕЛАЕТ ДАННАЯ ФУНЦИЯ?????
  else if (S[i] = '[') and (P > 0) then begin // ИСКЛЮЧАЕТ НЕОБХОДИМЫЕ СИМВОЛЫ
  Delete(S, i, P - i + 1); //ЧТО ЗНАЧИТ S, I, P???? ЧТО ОЗНАЧАЕТ i+1???
  P := 0;
  end;
  end;
  Memo2.Text := S; // выдает ответ.
end;
Saren вне форума Ответить с цитированием
Старый 25.11.2014, 22:46   #2
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  S : String;
  i, Len, P : Integer;
begin
  S := Memo1.Text; //вводим исходный текст.
  Len := Length(S);  // Возвращает количество элементов в строке
  P := 0; // ЧТО ЗАНЧИТ ЭТА ЗНАЧЕНИЕ??? Пока ни чего. Это просто переменная для хранения чисел. Тут её инициализировали (присвоили значение 0)
  for i := Len downto 1 do begin //чтО ДЕЛАЕТ ЦИКЛ? То что внутри него. От последнего символа строки s (Len := Length(s)) до первого
  if S[i] = ']' then
  P := i   //ЧТО ДЕЛАЕТ ДАННАЯ ФУНЦИЯ????? Если символ с индексом i (S[i]) равен [ то присваиваем p значение i. i при этом равняется индексу цикла
  else if (S[i] = '[') and (P > 0) then begin // ИСКЛЮЧАЕТ НЕОБХОДИМЫЕ СИМВОЛЫ
  Delete(S, i, P - i + 1); //ЧТО ЗНАЧИТ S, I, P???? ЧТО ОЗНАЧАЕТ i+1??? Удалить строку включая символ ]. Без +1 удалило бы ДО ].
  P := 0;
  end;
  end;
  Memo2.Text := S; // выдает ответ.
end;

Последний раз редактировалось WinCoder; 25.11.2014 в 22:50.
WinCoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПАСКАЛЬ Удалите группу символов, расположенных между круглыми скобками, включая сами скобки Ruqeyye Помощь студентам 4 08.01.2014 16:40
Visual Basic. Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка.Вывести текст между скобками Nember Помощь студентам 3 21.12.2013 22:04
удаление из исходной строки заданной конфигурации символов Petruha-nsk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 22 11.10.2010 15:53
Исключить группы символов.. nktpk Помощь студентам 0 28.09.2010 17:34
Группы символов, состоящие только из латинских букв, если первая буква группы входит в нее еще только оди Ela Помощь студентам 0 29.04.2010 13:41