Форум программистов, компьютерный форум CyberForum.ru

Поиск файлов по заданной строке!!! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ двухмерных массивов http://www.cyberforum.ru/cpp-beginners/thread312971.html
Привет ребята=)!!!Помогите пожалуйста в решении задач....А то в двухмерных массивах я вообще не понимаю=(((....Вот сами задачи: 1. Дана матрица размера M × N. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, …). Вывод элементов производить по столбцам, условный оператор не использовать. 2. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером...
C++ Чтение строк из бинарного файла. Вот как происходит запись строк pr.login и pr.password: FILE *f; f=fopen(path,"ab"); if (f!=NULL) { cout<<"Файл концигурации отстутствует, сейчас создадим новый \n"; cout<<"****************************************** \n"; cout<<"Регистрация в программе \n"; cout<<"Новый логин:"; cin>>pr.login; http://www.cyberforum.ru/cpp-beginners/thread312966.html
C++ Экзаменационные варианты , которые надо решить
Надо решить эти задачи . Помогите кто чем может ) можно рассматривать похожие задачи тоже , пределать их в нужные не составит большого труда . Задача1. Составить программу нахождения максимального из трех чисел с использованием функции и передачей двух параметров по ссылке с помощью операции косвенной адресации Задача 2. Составить программу вычисления минимальной компоненты вектора ...
Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел C++
Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел по формуле (НОК(А,В))=(А*В)/(НОД(А,В))
C++ Влияет ли манипуляторы hex,oct,dec на массив символов? http://www.cyberforum.ru/cpp-beginners/thread312923.html
Влияет ли манипуляторы hex,oct,dec на массив символов? есть unsigned char str; Ввожу и так cin >> hex >> str; и так cin >> str; Результат один и тот же, хотя если бы вместо str была бы переменная типа int, то при вводе числа 45 получилось бы в итоге 69. И еще, коды в переменных типа char и числа в int всегда записываются в десятичной системе исчисления, т.е. что бы не вводил в итоге...
C++ Дана строка. Подсчитать количество букв k в последнем ее слове. Дана строка. Подсчитать количество букв k в последнем ее слове. подробнее

Показать сообщение отдельно
Аллан
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 4
04.06.2011, 19:08     Поиск файлов по заданной строке!!!
Помогите плиз найти ошибку!!!Вроде поиск сам работает а когда вставляю код по поиску подстроки чёт тупит((Заранее спасибо!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <windows.h>
#include <cstring>
#include <string.h>
#include <fstream>
using namespace std;
void FindFiles(char* dir, char* mask,char substr[255]);
 
int main()
{
 
 char s[50];
 char z[255];
 setlocale(0,"Russian");
 cout<<"Имя папки для поиска\n";
 cin.getline(s,50);
 cout<<"Введите подстроку для поиска\n";
 cin.getline(z,255);
 FindFiles(s,"*.txt",z);
 cin.get();
 cin.get();
 return 0;
}
 
//-----------------------------------------------------------------------------------
void FindFiles(char* dir, char* mask,char substr[255]){
 WIN32_FIND_DATA FindFileData;
 HANDLE hFind;
 
 char basestr[256];
 int count = 0;
 
 char* FullName;
 FullName=new char[MAX_PATH];
   
 char* Flop;
 Flop=new char[MAX_PATH];
 
 char* root;
 root=new char[MAX_PATH];
 
 char* Finall;
 Finall=new char[MAX_PATH];
 
//-----ищем все файлы в каталоге-------------------------------------------------------- 
 
 strcpy(FullName,dir);
 strncat(FullName,"\\",MAX_PATH);
 strncat(FullName,mask,MAX_PATH);
 
 ofstream fout("D:\\10.txt");
 
 hFind = FindFirstFile(FullName, &FindFileData);
 
 if (hFind != INVALID_HANDLE_VALUE){ 
    
  do {
     if (!strncmp(FindFileData.cFileName, ".", 1) || !strncmp(FindFileData.cFileName, "..", 2))
      continue; 
    
    if(!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)){
      strncpy(Finall,dir,MAX_PATH);
      strncat(Finall,"\\",MAX_PATH);
      strncat(Finall,FindFileData.cFileName,MAX_PATH);
     
     count=0;
     ifstream file(Finall);
     
     if(file.fail())
         cout<<"Error";
     if(fout.fail())
         cout<<"Error";
     while(!file.eof())
     {
      file.getline(basestr,sizeof(basestr));
      
       const char * buf = basestr;
       while (strstr(buf, substr) != NULL) {
        buf = strstr(buf,substr);
        ++count;
        ++buf;
       }
     }
     
     if(count>0)    
     cout<<"Совпадений в: "<<Finall<<" = "<<count<<endl;
     file.close();
     
    }
    
  } while (FindNextFile(hFind,&FindFileData));
 fout.close();
 FindClose(hFind);
 }
 
//-----выполняем рекурсивный вызов-----------------------------------------------
 
 strncpy(Flop,dir,MAX_PATH);
 strncat(Flop,"\\",MAX_PATH);
 strncat(Flop,"*.*",MAX_PATH);
 
 hFind = FindFirstFile(Flop, &FindFileData);
 
 if (hFind != INVALID_HANDLE_VALUE) 
    { 
 
  do {
   
   if (!strncmp(FindFileData.cFileName, ".", 1) || !strncmp(FindFileData.cFileName, "..", 2))
    continue;
   if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
      strcpy(root,dir);
      strncat(root,"\\",MAX_PATH);
      strncat(root,FindFileData.cFileName,MAX_PATH);
      strncat(root,"\\",MAX_PATH);
    
      FindFiles(root,mask,substr);    
     
    }
  } while (FindNextFile(hFind,&FindFileData));
 
 FindClose(hFind);
 }
   
}
//--------------------------------------------------------------------------------
Добавлено через 18 минут
Точнее если указываешь большую директорию для поиска прога отрабатывает не корректно!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru