|
http://tikitak.narod.ru ---- Главная страница сайта
Шаг 62 - Поиск текста в файлах с использованием Developer Studio
Создаем проект
Оставляем наше консольное приложение Win32 c поддержкой MFC.
Описание
Итак вы как программист на С++ поставлены довольно в тяжелую ситуацию. Это огромное количество заголовочных фалов (*.h), огромное количество файлов C и CPP. Кроме того, если Вы похожи на меня, то Вы собираете огромное количество файлов документации и примеров откуда только можно :-)). У меня, например, только более 200 MB информации по компьютерным системам в формате HTML :-). Просто так, несмотря на структуризацию, найти тяжело. И этот размер далеко не предел. Так вот у меня часто возникает задача типа такой. Я хочу найти все, что написано про CRichEditView. Мне нужна информация. Что я делаю ? Пересматриваю все файлы естесвенно автоматически. Кроме того небезызвестная фирма далеко не все документирует. Вы разве на встречали ситуацию, когда функция не описана в справке, а в описании класса в заголовочном файле она есть? Вот этими причинами я и руководствовался решив посвятить этому вопросу целый шаг.
Для реализации этой возможности в предусмотрен пункт меню. Вот он.
В ответ на его выбор Вы получите следующее диалоговое окно. Вобщем-то эта возможность аналог утилиты greep, которая есть во многих средствах разработки для UNIX и DOS.
Вы видите полное окно поиска. Его раскрыть можно с помощью кнопки Advanced , и закрыть естественно. Смотрим чего здесь есть. Find what - сюда Вы пишите чего будете искать. У меня записано определение структуры точки в Windows. Дальше вы можете указать какие типы фалов будут просмотрены in files/file types - это естественно увеличивает скорость, например зачем просматривать exe, если Вы хотите найти текстовую информаци. Кстати применение этой возможности намного больше. Я, например, просмотрел весь каталог Windows (98 :-)) все файлы в поисках слова error и вот одна строка, которая меня заинтересовала. Это код на VB под другим расширением.
C:\WINDOWS\SAMPLES\WSH\NETWORK.VBS(69): On Error Resume Next
А оказалось это вот что. Вот так иногда и то, что есть на компьютере загадка, и оказывается помощь можно найти у себя на компе :-)
' Пример для сервера сценариев Windows
'
' ------------------------------------------------------------------------
' (C) Корпорация Microsoft, 1996-1998
'
' Вы имеете право, не требующее дополнительных лицензионных платежей,
' на использование, изменение, воспроизведение и распространение файлов
' примеров (и любой измененной версии) любым способом, учитывая, что
' Корпорация Microsoft не предоставляет гарантий и обязательств,
' а также не несет ответственности за любой из файлов примеров
' ------------------------------------------------------------------------
'
' Этот пример демонстрирует использование объекта WSHNetwork.
' Он используется для чтения свойств сети (имя пользователя и компьютера),
' подключения, отключения и перечисления дисков сети.
......................
Внизу вы можете добавить каталоги для поиска (Look in additional folder). Щелкаете два раза на строке, появляется кнопка (...) , нажимаете на ней и выбираете каталог. И так можно несколько раз в разных строчках. Крестиком можно удалять строку и так далее. Разберетесь :-)
Вернемся к поиску tagPoint результат поиска будет вот здесь.
Щелкните на любой записи и вы окажетесь в файле, да и курсор будет стоять в месте упоминания этой структуры. Один совет, если вы хотите найти всё, например, про точку лучше ввести point, так как её струтура есть еще и в WINGDI.H.
typedef struct tagPOINTFX
{
FIXED x;
FIXED y;
} POINTFX, FAR* LPPOINTFX;
В окне есть некоторые опции поиска, как, например, искать во вложенных папочках или нет. Надеюсь они не составят для вас труда. Надеюсь, что моё изложение Вам поможет.
Если честно сказать, то о существовании структуры POINTFX я и не подозревал, пока не провел этот поиск. Ну не попадалась она мне в описаниях и при работе. Думаю, использовав этот метод, вы сделаете много открытий для себя :-)
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|