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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 12:13   #1
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию Комментарии Delphi

Доброго времени суток уважаемые программисты. Есть функция, которая позволяет получить из файла (по идее с программой на языке ObjectPascal) комментарии, которые там есть, вот такого вида:
оператор; // какие-то комментарии
Код:
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  FileStream.Position := 0;
  SetLength(tmp, 2);
  old_last_true := false;
  while (FileStream.Position <> FileStream.Size) do
  begin
    FileStream.Read(Pointer(tmp)^, 2);

    if (tmp[1] = '/') and (tmp[2] = '/')  then
    begin
       ch := #0;
         while (FileStream.Position <> FileStream.Size) and (ch <> #10) do
      begin
        FileStream.Read(ch, 1);
        result := result + ch;
      end;
    result := result + #13;
    end;
FileStream.Free;
end;
А как сделать так, чтобы можно было получить комментарии еще и вот такого вида:
{ляляля
ляляля //(вот здесь это все еще комментарий в фигурных скобках) }

Т.е. чтобы можно было увидеть и //такие и {такие} комментарии?
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 05.11.2012, 13:25   #2
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Вот код, чтобы выводил комментарии заключенные в фигурные скобки
Код:
if tmp[1] = '{' then
    begin
     ch:=#0;
     while ch<>'}' do
       begin
        FileStream.Read(ch, 1);
        if ch<>'}' then
        result := result + ch;
       end;
    result := result + #13;
    end;
   end;
А как их вот эти две части заставить работать вместе? У кого нибудь есть идеи?
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 05.11.2012, 13:27   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
    if (tmp[1] = '/') and (tmp[2] = '/')  then
    begin
       ch := #0;
         while (FileStream.Position <> FileStream.Size) and (ch <> #10) do
      begin
        FileStream.Read(ch, 1);
        result := result + ch;
      end;
    result := result + #13;
    end
else 
if tmp[1] = '{' then
    begin
     ch:=#0;
     while ch<>'}' do
       begin
        FileStream.Read(ch, 1);
        if ch<>'}' then
        result := result + ch;
       end;
    result := result + #13;
    end;
   end;
вроде так
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 05.11.2012, 13:32   #4
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Mad_Cat, то что в фигурных скобках не выводит, могу весь проект дать, если есть желание посмотреть...
http://rghost.ru/41358106
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...

Последний раз редактировалось McFrey; 05.11.2012 в 13:39.
McFrey вне форума Ответить с цитированием
Старый 05.11.2012, 13:44   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
else
if tmp[1] = '{' then
    begin
     ch:=tmp[2];
eval вне форума Ответить с цитированием
Старый 05.11.2012, 13:49   #6
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

eval, все равно тоже самое, не выводит

P.S. в архиве с проектом файл ww.txt это вот для проверки...
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать комментарии к коду Delphi WwEVGENwW Помощь студентам 0 18.06.2012 14:27
Работа со списком. Рекурсия. Комментарии. (Delphi) Vlad_Is_Love Помощь студентам 1 18.03.2012 12:47
Комментарии к задаче на Delphi Brabus Помощь студентам 0 05.12.2010 23:01
Комментарии к коду программы на Delphi Asblue Помощь студентам 3 20.11.2010 17:13
Написать комментарии к коду. Delphi. Дарюха Помощь студентам 1 21.11.2007 16:05