![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Помогите решить проблему.
Задача. Есть много файлов с расширением PAS (сколько не известно) в одной папке PAPKA. В них объявлено x классов (сколько именно неизвестно). Нужно произвести поиск классов и их предков (то есть того, что написано в скобках после "= class") во всех файлах с расширением PAS в папке PAPKA и записать в текстовой документ ProjectClasses. Но при этом есть одно очень важное замечание. Не у всех классов есть предки! Так же проблема с тем, что в строке с имянем класса и его предка/предков может быть произвольное количество пробелов, но стоит обратить внимание, что ВСЕГДА объявление класса и его предка/предков будет на одной строке. Конечно в идеале я бы хотел, чтобы компьютер составлял иерархическое древо классов (как во многих книгах по Delphi), но понимаю, что эта задача очень трудна. Заранее благодарен за любые ответы. P.S. Впринципе расскажите хотя бы как тупо производить поиск в файлах через Delphi, это информация уже бует очень важна. Делаем'c разные игры. Искать на glscene.ru |
#2
|
||||
|
||||
![]() Не вижу больших сложностей.
Алгоритм примерно такой: 1. Открываем файл. 2. Построчно анализируем. Ищем вхождение "=class" в строке предварительно убрав все ненужные пробелы. 2.1. В случае нахождения, записываем в ветку дерева имя класса 2.2. Проверяем, является ли данный класс наследником ища в строке "=class(". Получаем имя предка. 2.2.1. В случае успеха переподчиняем ветку дерева ветке с именем предка. Если такой ветки еще не существует предварительно создаем ее. Выполняем п.2 Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Да, вроде все ok, но...
Цитата:
![]() Делаем'c разные игры. Искать на glscene.ru |
#4
|
||||
|
||||
![]() Цитата:
Давно я так заразительно не смеялся... А компьютер тебе зачем??? Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
|||
|
|||
![]() Вопрос такой - как сделать игнорирование пробелов? Оба класса, объявленных ниже, должны попадать в список:
Код:
Syper = class (men) Код:
Beautiful= class (mensha) Цитата:
![]() Делаем'c разные игры. Искать на glscene.ru |
#6
|
|||
|
|||
![]() И ещё вопрос, как узнать сколько файлов лежит в папке PAPKA?
Делаем'c разные игры. Искать на glscene.ru |