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

Поиск с консоли - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Насчёт функции memcpy() http://www.cyberforum.ru/cpp-beginners/thread53416.html
Начинаяю использовать эту функцию.Её синтаксис: void memcpy(void *to, const void *from, size_t count); Вопрос_1: Что такое size_t ? И вообще,зачем указателям тип воид? Они что,что-то вовращают?)) В учебнике пока такого не встречал,а функция нужна( ЗЫ: Нужно скопировать один числовой непустой массив в другой числовой массив...как это сделать не догоню уже полчаса.......
C++ Ввести три числа и проверить, возможно ли из них составить арифметическую прогрессию ввести три числа и проверить возможно ли с них составить арифметическую прогрессию http://www.cyberforum.ru/cpp-beginners/thread53408.html
передача параметров по ссылке C++
У кого есть рабочий вариант сего чуда ? (К примеру,функции квадратного корня).В учебнике не работает.
Присвоение типов в С++ C++
Как присвоить елементам массива mas_a елементы строки String.Массив имеет тип int,а String char?
C++ Вопрос по выносу кода в отдельный файл http://www.cyberforum.ru/cpp-beginners/thread53363.html
Вот если писать в С программу, очень много когда можно запутаться ... Можно ли как то вынести часть кода в файл. (именно файл, база не нужна) Например если есть большой массив, можно ли его вынести в файл и от туда считывать? если можно покажите пожалуйста как.
C++ Х в квадрате каким образом мжно делать что бы Х выводился на экарн со степенем? подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
01.10.2009, 12:21     Поиск с консоли
Вот консольная програмка для поиска файла в директории по его расширению....
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
#include <windows.h>
#include <shlobj.h>
#include <stdio.h>
#include <conio.h>
 
LPTSTR SelectFile();
void GetFileList(LPTSTR sPath, LPTSTR sExt);
 
void main()
{
    bool IsSelected = false;
    char sPath[MAX_PATH];
    char sExt[MAX_PATH];
    sprintf(sPath,"%s","[file_find.exe] Created by -=ЮрА=- 2009");
    CharToOem((LPCTSTR)sPath,sPath);
    SetConsoleTitle(sPath);
    printf("This program help to find files on its extensions *.ext\r\n");
 
    HWND hWnd = FindWindow(NULL, sPath);
    ShowWindow(hWnd,SW_HIDE);
    if(strcpy(sPath,SelectFile()))
        IsSelected = true;
    ShowWindow(hWnd,SW_SHOW);
    if(IsSelected)
    {
        GetShortPathName(sPath,sPath,MAX_PATH);
        printf("Enter extension (*.ext) -> ext :\t");scanf("%s",sExt);
        GetFileList(sPath, sExt);
    }
    printf("For enter new Ext press NUM1\r\n");
    if(getch() == 49)
        main();
}
 
LPTSTR SelectFile()
{
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите директорию для поиска",
        BIF_DONTGOBELOWDOMAIN/*|BIF_BROWSEINCLUDEFILES*/,
        NULL,
        NULL,
        0
    };
    if((lpItemDList=SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    return &sPath[0];
}
 
void GetFileList(LPTSTR sPath, LPTSTR sExt)
{
    WIN32_FIND_DATA pFILEDATA;
    GetShortPathName(sPath,sPath,MAX_PATH);
    CharToOem(sPath,sPath);
    printf("\r\n\tStart serching in \r\n[%s]\r\n",sPath);
    OemToChar(sPath,sPath);
    HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA);
    if (hFile!=INVALID_HANDLE_VALUE)
    {
        char * chBuf;
        sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
        do
        {
            //Пропускаем . и ..
            if
            (
            strlen(pFILEDATA.cFileName) == 1
            &&
            strchr(pFILEDATA.cFileName,'.') !=NULL
            )
            if(FindNextFile(hFile,&pFILEDATA) == 0)
                break;
            if
            (
            strlen(pFILEDATA.cFileName) == 2   
            &&
            strstr(pFILEDATA.cFileName,"..") !=NULL
            )
            if(FindNextFile(hFile,&pFILEDATA) == 0)
                break;
            //
            //Если нашли директорию, запускаем поиск в ней
            //(рекурсивный поиск
            if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                GetFileList(strcat(sPath,pFILEDATA.cFileName), sExt);
            else
            {
                //Проверяем на соотвествие sExt расширения pFILEDATA.cFileName
                if((chBuf = strrchr(pFILEDATA.cFileName,'.')))
                if(strstr(chBuf + 1,sExt))
                {
                    //Если не будем использовать CharToOem()
                    //то на экране русский шрифт каракулями выйдет
                    CharToOem(pFILEDATA.cFileName,pFILEDATA.cFileName);
                    printf("\t\t-> %s\r\n",pFILEDATA.cFileName);
                }
            }
        }
        while (FindNextFile(hFile,&pFILEDATA)!=0);
    }
    printf("\r\n\tSearching complete\r\n",sPath);
}
Миниатюры
Поиск с консоли  
 
Текущее время: 05:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru