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

Не могу понять почему не присваивает?( - C++

Восстановить пароль Регистрация
 
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
09.11.2012, 18:45     Не могу понять почему не присваивает?( #1
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
#include <stdio.h> 
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <string.h>
using namespace std;
 
void FindFiles(TCHAR* pszPath, TCHAR* pszMask)
{
    TCHAR szFileName1[MAX_PATH];
    TCHAR szFileName2[MAX_PATH];
    WIN32_FIND_DATA fd;
    HANDLE hFind;
   
   
    wsprintf(szFileName1, _T("%s\\%s"), pszPath,pszMask);
  
 /* ПОЧЕМУ ФИНД не принимает значение?????((((*/   hFind = FindFirstFile(szFileName1, &fd);
    
   
    if (hFind == INVALID_HANDLE_VALUE) return;
    do
    {
             wsprintf(szFileName1, _T("%s\\%s"), pszPath, fd.cFileName);
             wprintf(szFileName1);
            
            
    /*          char  * Name = new char [sizeof(szFileName) / sizeof(char)];
                WideCharToMultiByte(CP_ACP, 0,  szFileName, -1, Name, strlen(Name), NULL, NULL);
                
                char  * type = new char [sizeof(pszMask) / sizeof(char)];
                WideCharToMultiByte(CP_ACP, 0,  pszMask, -1, type, strlen(type), NULL, NULL);
 
 
 
            if(!strcmp(type,"*.doc"))
                {
                    char * B;
                    B=strstr(Name, ".doc");
                        if(!B==0 )
                           {
                              strcat(Name,"/");
                              printf("%s\n",Name);}
               }
                
                if(!strcmp(type,"*"))
                {printf("%s\n",Name);} */
                    
                
        
                
    } while(FindNextFile(hFind, &fd));
    FindClose(hFind);
     
    wsprintf(szFileName2, _T("%s\\%s"), pszPath,_T("*"));
    hFind = FindFirstFile(szFileName2, &fd);
     
    if (hFind == INVALID_HANDLE_VALUE) return;
    do
    {
        if(!lstrcmp(fd.cFileName, _T("."))|| !lstrcmp(fd.cFileName, _T(".."))) continue;
        if(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY )
        {
            wsprintf(szFileName1, _T("%s\\%s"), pszPath, fd.cFileName);
             FindFiles(szFileName1, pszMask);
        }
    } while(FindNextFile(hFind, &fd));
    FindClose(hFind);
}
 
 
 
 
int main()
{ 
    
    FindFiles(_T("c:\Intel"),_T("*.doc"));
//  if(!strcmp(argv,"all"))
//  {
//      FindFiles(pszPath,_T("*.*"));}
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 18:45     Не могу понять почему не присваивает?(
Посмотрите здесь:

Не могу понять почему... C++
C++ не могу понять почему не работает
ошибка не могу понять почему ! C++
не могу понять,почему не идет C++
C++ Не могу понять почему не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
09.11.2012, 18:53     Не могу понять почему не присваивает?( #2
что значит не принимает? он принимает INVALID_HANDLE_VALUE или что?
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
09.11.2012, 18:57  [ТС]     Не могу понять почему не присваивает?( #3
hFind = FindFirstFile(szFileName1, &fd); - если папка с файлами, он все равно остается пустым
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
09.11.2012, 19:00     Не могу понять почему не присваивает?( #4
кто остаётся пустым? структура fd заполняется или нет? Ты же в неё смотришь, верно?
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
09.11.2012, 23:01  [ТС]     Не могу понять почему не присваивает?( #5
когда я по шагу смотрю то fd заполнен, а вот в hHind нечего не передается.....

Добавлено через 2 часа 0 минут
я надеялся мне ответят быстро((((((((

Добавлено через 1 час 58 минут
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
09.11.2012, 23:26     Не могу понять почему не присваивает?( #6
Цитата Сообщение от c0nail Посмотреть сообщение
когда я по шагу смотрю то fd заполнен, а вот в hHind нечего не передается.....
что значит не принимает значение? не нашел файл - вернул INVALID_HANDLE_VALUE.
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
10.11.2012, 00:35  [ТС]     Не могу понять почему не присваивает?( #7
если б папка была пустая......
Не могу понять почему не присваивает?(
&fd как видишь, содержит информацию о файле, а вот в hFind она не передается....

P.S. Надеюсь нормально обьяснил
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.11.2012, 00:59     Не могу понять почему не присваивает?( #8
c0nail, он вам и вернул INVALID_HANDLE_VALUE.
А в fd никакой инфы нет. Если вы будете более внимательны, то увидите, что она содержит мусор, который как был до вызова FindFirstFile, так там и остался
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
10.11.2012, 14:10  [ТС]     Не могу понять почему не присваивает?( #9
ммм да , вы правы извиняюсь(((( факт остается фактом, почему оно не работает?((((

p.s. у меня этот код работал, но я где то что то помоиму поменял и теперь не знаю в чем проблема(

Добавлено через 13 часов 2 минуты
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
10.11.2012, 14:30     Не могу понять почему не присваивает?( #10
C++
1
FindFiles(_T("c:\Intel"),_T("*.doc"));
поменяйте на
C++
1
FindFiles(_T("c:\\Intel"),_T("*.doc"));
Добавлено через 2 минуты
Цитата Сообщение от c0nail Посмотреть сообщение
если б папка была пустая......
а Вы не видите, какой текст содержится в szFileName1?
Там же написано c:Intel\*.doc
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
10.11.2012, 15:02  [ТС]     Не могу понять почему не присваивает?( #11
Цитата Сообщение от Croessmah Посмотреть сообщение
FindFiles(_T("c:\\Intel"),_T("*.doc"));
так тоже самое(((
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
10.11.2012, 15:05     Не могу понять почему не присваивает?( #12
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
#include <stdio.h> 
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <string.h>
using namespace std;
 
void FindFiles(TCHAR* pszPath, TCHAR* pszMask)
{
    TCHAR szFileName1[MAX_PATH];
    TCHAR szFileName2[MAX_PATH];
    WIN32_FIND_DATA fd;
    HANDLE hFind;
   
   
    wsprintf(szFileName1, _T("%s\\%s"), pszPath,pszMask);
  
 /* ПОЧЕМУ ФИНД не принимает значение?????((((*/   hFind = FindFirstFile(szFileName1, &fd);
    
   
    if (hFind == INVALID_HANDLE_VALUE) return;
    do
    {
             wsprintf(szFileName1, _T("%s\\%s"), pszPath, fd.cFileName);
             wprintf(szFileName1);
            
            
    /*          char  * Name = new char [sizeof(szFileName) / sizeof(char)];
                WideCharToMultiByte(CP_ACP, 0,  szFileName, -1, Name, strlen(Name), NULL, NULL);
                
                char  * type = new char [sizeof(pszMask) / sizeof(char)];
                WideCharToMultiByte(CP_ACP, 0,  pszMask, -1, type, strlen(type), NULL, NULL);
 
 
 
            if(!strcmp(type,"*.doc"))
                {
                    char * B;
                    B=strstr(Name, ".doc");
                        if(!B==0 )
                           {
                              strcat(Name,"/");
                              printf("%s\n",Name);}
               }
                
                if(!strcmp(type,"*"))
                {printf("%s\n",Name);} */
                    
                
        
                
    } while(FindNextFile(hFind, &fd));
    FindClose(hFind);
     
    wsprintf(szFileName2, _T("%s\\%s"), pszPath,_T("*"));
    hFind = FindFirstFile(szFileName2, &fd);
     
    if (hFind == INVALID_HANDLE_VALUE) return;
    do
    {
        if(!lstrcmp(fd.cFileName, _T("."))|| !lstrcmp(fd.cFileName, _T(".."))) continue;
        if(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY )
        {
            wsprintf(szFileName1, _T("%s\\%s"), pszPath, fd.cFileName);
             FindFiles(szFileName1, pszMask);
        }
    } while(FindNextFile(hFind, &fd));
    FindClose(hFind);
}
 
 
 
 
int main()
{
    
    FindFiles(_T("c:\\Intel"),_T("*.doc"));
//  if(!strcmp(argv,"all"))
//  {
//      FindFiles(pszPath,_T("*.*"));}
    getch();
}
Не могу понять почему не присваивает?(
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
10.11.2012, 15:14  [ТС]     Не могу понять почему не присваивает?( #13
ой , это какой то внутрений лаг(((((( поменял просто FindFiles(_T("e:\\1"),_T("*.jpg")); и стало работать........


p.s Извиняюсь что зря трепал нервы(
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
10.11.2012, 15:16     Не могу понять почему не присваивает?( #14
Цитата Сообщение от c0nail Посмотреть сообщение
ммммм и что мне теперь делать((((
в смысле? =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2012, 15:18     Не могу понять почему не присваивает?(
Еще ссылки по теме:

Не могу понять почему C++
Не могу понять, почему? C++
Не могу понять почему не запускается C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
c0nail
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 30
10.11.2012, 15:18  [ТС]     Не могу понять почему не присваивает?( #15
Всем спасибо, тему можно клоуз)
Yandex
Объявления
10.11.2012, 15:18     Не могу понять почему не присваивает?(
Ответ Создать тему
Опции темы

Текущее время: 07:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru