Шаг 62 - Поиск текста в файлах с использованием Developer Studio

Создание проекта

Любой проект.

Описание

Итак, Вы как программист на С++ поставлены довольно в тяжелую ситуацию. Это огромное количество заголовочных фалов (*.h), огромное количество файловC и CPP. Кроме того, если Вы похожи на меня, то Вы собираете огромное количество файлов документации и примеров откуда только можно. У меня, например, только более 200 MB (500MB - 2001 год) информации по компьютерным системам в формате HTML. Просто так, несмотря на структуризацию, найти тяжело. И этот размер далеко не предел. Так вот у меня часто возникает задача типа такой. Я хочу найти все, что написано про CRichEditView. Мне нужна информация. Что я делаю? Пересматриваю все файлы естественно автоматически. Кроме того, небезызвестная фирма далеко не все документирует. Вы разве на встречали ситуацию, когда функция не описана в справке, а в описании класса в заголовочном файле она есть? Вот этими причинами я и руководствовался, решив посвятить этому вопросу целый шаг.

Для реализации возможности поиска предусмотрен пункт меню Find in Files (поиск в файлах). Вот он.

62_1.gif (4346 b)

В ответ на его выбор Вы получите следующее диалоговое окно. Вобщем-то эта возможность аналог утилиты greep, которая есть во многих средствах разработки для UNIX и DOS.

62_2.gif (6008 b)

Вы видите полное окно поиска. Его раскрыть можно с помощью кнопки 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 результат поиска будет вот здесь.

62_3.gif (7159 b)

Щелкните на любой записи, и вы окажетесь в файле, да и курсор будет стоять в месте упоминания этой структуры. Один совет, если вы хотите найти всё, например, про точку лучше ввести point, так как её структура есть еще и в WINGDI.H.

typedef struct tagPOINTFX
{
FIXED x;
FIXED y;
} POINTFX, FAR* LPPOINTFX;

В окне есть некоторые опции поиска, как, например, искать во вложенных папочках или нет. Надеюсь, они не составят для вас труда. Надеюсь, что моё изложение Вам поможет. Если честно сказать, то о существовании структуры POINTFX я и не подозревал, пока не провел этот поиск. Ну не попадалась она мне в описаниях и при работе. Думаю, использовав этот метод, вы сделаете много открытий для себя.

Шпаргалка

Найти описание классов, функций и структур можно в заголовочных файлах.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 1.11.99 (обновлено 18.07.2001)