Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#define PATH "C:\\"
#define INFILE "test.txt"
#define OUTFILE "out.txt"
 
//////////////////////////////////////////////////////////////////////////////////////////////////////
void findFile(char* wrkdir, char* fname, FILE* f)
{
    HANDLE hFile;
    WIN32_FIND_DATA file_data;
    char wrkdirtemp[MAX_PATH], buf[MAX_PATH];
 
    strcpy(wrkdirtemp, wrkdir);
 
    if(wrkdirtemp[strlen(wrkdirtemp) - 1] != '\\')
        strcat(wrkdirtemp, "\\");
    sprintf(buf, "%s*", wrkdirtemp);
 
    hFile = FindFirstFile(buf, &file_data);
    if(INVALID_HANDLE_VALUE == hFile)
        return;
 
    do
    {
        if(file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            if('.' == *(short*)&file_data.cFileName || '..' == *(short*)&file_data.cFileName)
                continue;
 
            sprintf(buf, "%s%s", wrkdirtemp, file_data.cFileName);
            findFile(buf, fname, f);
        }
        else if(!strcmp(file_data.cFileName, fname))
            fprintf(f, "%s%s\r\n", wrkdirtemp, file_data.cFileName);
 
    } while(FindNextFile(hFile, &file_data));
 
    FindClose(hFile);
}  
 
//////////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    FILE *fi, *fo;
    char *path, *ptr, line[0x400];
    
    if(!(fi = fopen(INFILE, "rb")))
    {
        puts("Can't open an input file\n");
        return -1;
    }
    if(!(fo = fopen(OUTFILE, "wb")))
    {
        puts("Can't create an output file\n");
        return -1;
    }
 
    path = PATH;
    while(fgets(line, sizeof(line), fi))
    {    
        for(ptr = line + strlen(line); (*ptr != '\\') && (*ptr != '/'); --ptr)
            if('\r' == *ptr || '\n' == *ptr)
                *ptr = 0;
        findFile(path, ptr + 1, fo);
    }
 
    fclose(fi);
    fclose(fo);
    return 0;
}

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 15:48 02-08-2013 | Исправлено: ne_viens, 15:49 02-08-2013
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru