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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 21:20   #1
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию Процедуры дельфи !

Почему процедура DelCom не работает ?

Код:
procedure TForm1.DelCom(s: string);
var
  i:integer;
  v:boolean;
  w,w1:Integer;

begin
  delete(s,pos('//',s),Length(s)-1);
   for i:=1 to Length(s) do  begin

   if s[i] = '{' then begin w:=w+1; v:=true;
   delete(s,pos('{',s),length(s)-1);
   end;

   if s[i] = '}' then begin w1:=w1+1; v:=false;
   Delete(s,1,pos('}',s));
   end;

  end;
   if (w=0) and (w1=0) and (v=true) then
   Delete(s,1,Length(s));
       w:=0;w1:=0;
end;
//////////////////////////////////////////////////////////////////////////////

 w:=0; w1:=0; v:=false; v1:=false;
while x < memo1.Lines.Count do begin

  s1:='';
 1:s:=Memo1.Lines[x];           
  sg1.Cells[0,y+1]:=inttostr(x+1);  
  s:=s+' ';

  DelCom; //процедура которая должна удалить комментарии из строки
end;
Heng вне форума Ответить с цитированием
Старый 26.02.2013, 21:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Потому что она у тебя описана с параметром:
Цитата:
DelCom(s: string);
А вызываешь ты ее без:
Цитата:
s:=s+' ';

DelCom; //процедура которая должна удалить комментарии из строки
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2013, 21:25   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
DelCom;
строку в нее передавать не пробовали с комментариями?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 26.02.2013, 21:32   #4
Heng
Форумчанин
 
Регистрация: 27.02.2012
Сообщений: 117
По умолчанию

исправил, всеравно s после DelCom идет с коментариями, а если вместо процедуры тупо код вставлю то все пашет !

я вообще все правильно описал? мб нетак написал что ???

Процедура понимает что ей надо менять переменные v,w,w1 ?? которые имеются за пределами процедуры

Больше идей нет ?

я проверил, внутри процедуры действие выполняется, а за пределы не выходит, как это исправить ????

Последний раз редактировалось Stilet; 26.02.2013 в 23:01.
Heng вне форума Ответить с цитированием
Старый 26.02.2013, 22:18   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
procedure TForm1.DelCom( var s: string);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение имени процедуры из нутри самой процедуры RISagitov Microsoft Office Excel 8 28.09.2012 17:15
таблицы подстановок в дельфи(базы данных в дельфи) ManiagoZ БД в Delphi 0 15.05.2011 15:07
Использование имени процедуры в качестве параметра другой процедуры Alexey355 Помощь студентам 1 23.04.2011 13:59
закончить выполнение процедуры из тела другой процедуры Alaysor Общие вопросы Delphi 14 23.01.2011 05:26
Управляющие структуры, процедуры Function и процедуры Sub Natalo4ka Помощь студентам 0 17.05.2010 22:00