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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2010, 17:10   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
Радость Комментарии в текстовом анализаторе

Всем доброго времени суток.

Столкнулся с такой проблемой, нужно написать процедуру, которая бы перед анализом текста удаляла все комментарии, чтобы он не учитывался.

Для этого я создаю Memo в него заганяю весь текст и дальше посимвольно проверяю его:

Код:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  memInput.Clear;
  lblLog.Caption := '';
  // Создание динамического Memo для хранения текста
  memDin := TMemo.Create(Owner);
  with memDin do
  begin
    Parent := self;
    Visible := false;
    ScrollBars := ssVertical;
  end;
end;
Код:
procedure TfrmMain.CommentAdmission(Sender: TObject);
var
  i, j: integer;
  DelTxt: string;
begin
  memDin.Text := TrimLeft(memInput.Text);
  j := 1;
  //for i := 1 to Length(memDin.Text) do
  //begin
    if memDin.Text[i] = '{' then
    begin
      while ((memDin.Text[j] <> '}') and
            (j <= Length(memDin.Text))) do
      begin
        Inc(ComLeng);
        Inc(j);
      end;
    end;
  //end;
  DelTxt := memDin.Text;
  Delete(DelTxt, j, ComLeng);
  memDin.Text := TrimLeft(DelTxt);
end;
Но так к сожелению не получается, может кто знает как можно попроще это реализовать?
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 19.02.2010, 17:31   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Пробуй вот :
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  p1,p2:integer;
  sTemp:string;
begin
  sTemp := Memo.Text;
  // убираем коменты в фигурных скобках
  while ((p1 <> 0) and (p2 <>0)) do
    begin
    p1 := Pos('{', sTemp);
    if p1 <> 0 then Delete(sTemp, p1, 1);
    p2 := Pos('}', sTemp);
    if p2 <>0 then
      begin
      Delete(sTemp, p2, 1);
      Delete(sTemp, p1, p2 - p1);// здесь дважды - чтобы обойти сутуацию когда будет только } и не будет {
      end;
    end;
  Memo.Text := sTemp;
end;
У тебя Delphi какая версия ? Если 2010 - могу полностью пример прикрепить.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 19.02.2010 в 17:34.
Kotofff вне форума Ответить с цитированием
Старый 19.02.2010, 17:34   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Kotofff, у меня d10 Lite и спс за помощь
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фото в комментарии Gregul Microsoft Office Excel 12 09.03.2012 01:27
комментарии на русском в VC++ 1000web Общие вопросы C/C++ 4 05.11.2009 21:51
Комментарии к ячейкам nikolai_P Microsoft Office Excel 1 18.06.2009 13:54
комментарии к коду leahov Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 09.06.2009 13:09
Комментарии к коду ELL Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.03.2009 16:01