Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 036
от 07.07.2002, 10:40

Администратор:
Имя: Коробов Н.А.
URL: Информационный ресурс
ICQ: 365124
Украина, Днепропетровск
О рассылке:
Задано вопросов: 107
Отправлено ответов: 195
Активность: 182.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Sensey
Статус: Профессиональный
Общий рейтинг: 139.72
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 128.84
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 115.83
[Подробней >>]
 
dmi
Статус: Начальный
Общий рейтинг: 117.07
[Подробней >>]
Xidden
Статус: Начальный
Общий рейтинг: 155.55
[Подробней >>]
kvINT
Статус: Опытный
Общий рейтинг: 113.61
[Подробней >>]
 
Zloy
Статус: Опытный
Общий рейтинг: 105.48
URL: The полный отстой
[Подробней >>]
AnSim
Статус: Опытный
Общий рейтинг: 109.77
[Подробней >>]
kostik
Статус: Профессиональный
Общий рейтинг: 114.36
URL: Все о программистах и для программистов
Телефон: (4212)393-276
[Подробней >>]
 
NAD
Статус: Начальный
Общий рейтинг: 115.38
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 104. Здравствуйте! Как организовать поиск файлов на диске по содержимому. Точнее: есть папка с doc-файлам... (ответов: 6)
Вопрос № 105. Не знаете где можно достать нормальный русский справочник по API и по Buldier'у ?... (ответов: 3)
Вопрос № 106. Уважаемые эксперты! Подскажите пожалуйста какой пакет лучше для работы с С/С++, Borland C++ 3.1 или... (ответов: 5)

Вопросов: 3, ответов: 14


 Вопрос № 104

Здравствуйте!
Как организовать поиск файлов на диске по
содержимому.
Точнее: есть папка с doc-файлами, нужно вывести список файлов,
содежащих введенное слово (словосочетание).



Вопрос отправлен: 03.07.2002, 13:33
Отправитель: Orlando

[Следующий вопрос >>] [Список вопросов]

Отвечает Sensey

Доброе время суток, Orlando!
Стандартно.
В цикле открываешь все файлы, потом каждый читаешь и ищешь что надо. Быстрый поиск строк можно посмотреть в Кнута "Искуство программирования". В Инете книга есть.


Ответ отправлен: 03.07.2002, 14:51
Отправитель: Sensey


Отвечает Ayl

Доброе время суток, Orlando!
Алгоритм такой.
Ищешь все файлы по заданной маске по заданным каталогам.
Для каждого файла открываешь его и в нем ищешь свое словосочетание. Если нашел - выводишь имя файла.
Переходишь к поиску следующего.


Ответ отправлен: 03.07.2002, 14:00
Отправитель: Ayl


Отвечает vitya

Доброе время суток, Orlando!
Как итерировать файлы я не рассказываю, это легко, теперь как искать подстроку в файле. Могу предложить два способа
1. Медленный но простой
Итак, с помощью fopen() открываешь файл, потом с помощью fgets() читаешь строчки, а потом вызываешь strstr(), если возврат не NULL, значит эта подстрока там есть.
2. Побыстрее, но сложнее. Открываешь с помощью CreateFile(), сождаешь отображаемый в память файл (CreateFileMapping, MapViewOfFile), и вызываешь все ту же strstr().

Ответ отправлен: 03.07.2002, 13:56
Отправитель: vitya


Отвечает dmi

Добрый день, Orlando!
есть такая штука, как FindFirst.. Честно говоря не хочется сейчас рыться, но если припечет, - напиши мне на мыло
procmaker@pochtamt.ru
By

Ответ отправлен: 03.07.2002, 13:52
Отправитель: dmi


Отвечает Xidden

Доброе время суток, Orlando! Если честно, я не знаю формат доковских документов. А с обычными фйлами я бы поступил просто: используй ф-цию sysread() для чтения файлов в буфер (посмотри ее описание поподробней), и длину буфера в 1024 или больше, потом в цикле ищи в буфере нужные словосочетания. Ищи обычным перебором. сравнивая все куски текста равные по длинне с нужным тебе,(для этого в отдельный массив выбирай куски из буфера нужной длины и сравнивай)
for(i=0;i<=len_of_buf;i++){
for(j=0;j<=len_of_string;j++){
temp[j]=buf[i++];
}
if (temp=string) {...}
}}
Вообщем что-то типа этого. Может я тут че-то наврал просто тороплюсь сильно.


Ответ отправлен: 04.07.2002, 00:03
Отправитель: Xidden


Отвечает kvINT

Доброе время суток, Orlando!
Если тебе просто надо найти, то Пуск->Найти->Файлы и папки.
Если же программу хочешь написать, то открывай все файлы по очереди и просматривай их полностью. Используй, например, ф-цию strcmp из string.h для сравнения со своим словом.


Ответ отправлен: 04.07.2002, 12:18
Отправитель: kvINT


 Вопрос № 105

Не знаете где можно достать нормальный русский справочник по API и по Buldier'у ?



Вопрос отправлен: 03.07.2002, 16:27
Отправитель: Влад (istomin@baikonur.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Xidden

Приветствую Вас, Влад! Посмотри в Инете. Загляни на winapi.h1.ru там есть описание Апи но не всех. А по Билдеру точно есть и много. Юзай поисковики.А еще поспрашивай в рассылке по асму.


Ответ отправлен: 03.07.2002, 23:54
Отправитель: Xidden


Отвечает Zloy

Приветствую Вас, Влад!
Нормальный справочник по API - это всем известная MSDN :)))
А справку на русском можно взять тут: http://winapi.h1.ru
Есть у меня одна книжка по Билдеру 20 метров (картинок там много) сразу кидать не решился, но если очень надо zloy-site@mail.ru

Ответ отправлен: 04.07.2002, 19:19
Отправитель: Zloy


Отвечает kvINT

Доброе время суток, Влад!
Есть справочник по API на русском для VB, но это не суть важно. Главное, что он не полный, полная версия платная. http://rusproject.newmail.ru
E-mail: vbasic@rambler.ru


Ответ отправлен: 04.07.2002, 12:18
Отправитель: kvINT


 Вопрос № 106

Уважаемые эксперты!
Подскажите пожалуйста какой пакет лучше для работы с С/С++,
Borland C++ 3.1 или Turbo C++ 3.0, просто у меня Borland C++ 3.1
Инагда подвисает а, с Turbo C++ 3.0 вот я и не знаю какой все таки лучше или может другой какой нибудь, да если можно посоветуйте каким компилятором пользоватся у меня есть от BorlandC++ 5.0;Quick C 2.0;
Symantec C++ 6.1; Watcom C 10-95;
как делать assm вставки,у меня почему то не работают
Зарание благодарен.


Приложение:


Вопрос отправлен: 03.07.2002, 19:56
Отправитель: Roman (mroman@tut.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает AnSim

Доброе время суток, Roman!
Точно не помню, но в этом компиляторе нужно поставить директиву
#pragma inline
Поставь турбо С++ 3.0 и :)
он маленький и быстрый - хорош для ДОс-а

Ответ отправлен: 04.07.2002, 10:42
Отправитель: AnSim


Отвечает kostik

Здравствуйте, Roman!
В программе должна быть директива #pragma inline.
Из перечисленных Вам еомпиляторов я бы посоветовал испольовать Turbo C++ 3,0.


Ответ отправлен: 06.07.2002, 13:35
Отправитель: kostik


Отвечает Zloy

Приветствую Вас, Roman!
Мне нравятся BC++ 5.02 и BC++ 3.1
А про асм: может быть у тебя не указана опция [-B] при компиляции. Или в программе задать директиву #pragma inline


Ответ отправлен: 04.07.2002, 19:19
Отправитель: Zloy


Отвечает NAD

Приветствую Вас, Roman!
На вижал с++ асм. вставки делаются так:
_asm
{
//...
}

Ответ отправлен: 03.07.2002, 20:59
Отправитель: NAD


Отвечает vitya

Доброе время суток, Roman!
если тебя интересует под ДОС то BC++ 3.1 или 5.0(2), a под Windows советовал бы VC++ ну в крайнем случает BC++Builder
для ассемблерных вставок же рекомендую писать так
asm mov ax, 03h;
asm int 21h;


Ответ отправлен: 04.07.2002, 08:28
Отправитель: vitya



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (52)
C / C++ (31)
Perl (10)
Delphi (15)
Pascal (28)
Basic / VBA (11)
Java / JavaScript (6)
PHP (5)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (45)
Windows NT/2000/XP (32)
"Железо" (37)
Поиск информации (18)
Администратору
Windows NT/2000/XP (17)
Linux / Unix (14)
Юристу
Гражданское право (6)
Семейное право (3)
Трудовое право (5)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное