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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
#1

Спецификация файла. WTF? - C++

07.01.2012, 20:20. Просмотров 1872. Ответов 8
Метки нет (Все метки)

Здравствуйте. Что такое спецификация файла (в контексте данной задачи)?
В Google ничего понятного не нашел.

Заранее спасибо.
Миниатюры
Спецификация файла. WTF?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2012, 20:20     Спецификация файла. WTF?
Посмотрите здесь:

Очередное WTF ))) - C++
Вот до чего меня жизнь довела: имеем файл file.txt который содержит просто строку "Hello,World!" (с ковычками). Далее пишем такой код: ...

ООП + полиморфизм = wtf? - C++
Есть: Класс A - отец Класс Б - дочерний Класс Ц - дочерный, наследуеться от А(сестра Б) Есть массив типа А, с названием Mass. ...

Расширение языка С. WTF? - C++
Hi, All! Решил на выходных заняться учебой, сессия скоро. На эти выходные наметил себе план работ - скачать задания:) Вот сижу читаю...

Обработка исключений. Спецификация - C++
Ниже описан код по обработке исключений. Вот какие появились вопросы: 1. Есть ли при обработке исключений автоматическое преобразование...

Полная спецификация шаблона в перемешку с SFINAE - C++
Добрый вечер, код полностью не валидный, но показывает мои искренние старания. Желание написать C++11 generation template class,...

map assigment of read only data member или WTF? - C++
задача:из acm.timus.ru 1100. Таблица результатов Ограничение времени: 1.0 секунды Ограничение памяти: 16 МБ Старое программное...

WTF не работает простой код на Visual studio 2008(баг?) - C++
Взял код из википедии. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
07.01.2012, 21:11  [ТС]     Спецификация файла. WTF? #2
Пожалуйста, кто-нибудь!
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.01.2012, 22:19     Спецификация файла. WTF? #3
имя файла и путь имеется ввиду наверное.

Добавлено через 13 минут
бубубу
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
    std::map<DWORD,std::string> a_ty;
 
    a_ty[FILE_ATTRIBUTE_ARCHIVE] = "FILE_ATTRIBUTE_ARCHIVE";
    a_ty[FILE_ATTRIBUTE_COMPRESSED] = "FILE_ATTRIBUTE_COMPRESSED";
    a_ty[FILE_ATTRIBUTE_DEVICE] = "FILE_ATTRIBUTE_DEVICE";
    a_ty[FILE_ATTRIBUTE_DIRECTORY] = "FILE_ATTRIBUTE_DIRECTORY";
    a_ty[FILE_ATTRIBUTE_ENCRYPTED] = "FILE_ATTRIBUTE_ENCRYPTED";
    a_ty[FILE_ATTRIBUTE_HIDDEN] = "FILE_ATTRIBUTE_HIDDEN";
    a_ty[FILE_ATTRIBUTE_NORMAL] = "FILE_ATTRIBUTE_NORMAL";
    a_ty[FILE_ATTRIBUTE_NOT_CONTENT_INDEXED] = "FILE_ATTRIBUTE_NOT_CONTENT_INDEXED";
    a_ty[FILE_ATTRIBUTE_OFFLINE] = "FILE_ATTRIBUTE_OFFLINE";
    a_ty[FILE_ATTRIBUTE_READONLY] = "FILE_ATTRIBUTE_READONLY";
    a_ty[FILE_ATTRIBUTE_REPARSE_POINT] = "FILE_ATTRIBUTE_REPARSE_POINT";
    a_ty[FILE_ATTRIBUTE_SPARSE_FILE] = "FILE_ATTRIBUTE_SPARSE_FILE";
    a_ty[FILE_ATTRIBUTE_SYSTEM] = "FILE_ATTRIBUTE_SYSTEM";
    a_ty[FILE_ATTRIBUTE_TEMPORARY] = "FILE_ATTRIBUTE_TEMPORARY";
 
    DWORD attr = ::GetFileAttributesA("D:\\Nike");
 
    if (attr==INVALID_FILE_ATTRIBUTES) {
        std::cout << "oops.\n";
        getch();
        return 1;
    }
 
    std::map<DWORD,std::string>::iterator it = a_ty.begin();
 
    for (; it!=a_ty.end(); it++) {
 
        if (attr & it->first)
            std::cout << it->second << '\n';
 
    }


Добавлено через 1 минуту
хм. хотя по идее от тебя и требуется написать свою GetFileAttributesA.
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
07.01.2012, 23:45  [ТС]     Спецификация файла. WTF? #4
Спасибо. А как посмотреть реализацию этой функции в windows.h?
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.01.2012, 00:13     Спецификация файла. WTF? #5
vortexx1, никак

тебе лучше уточнить задание (точно оно в этом?), т.к лично я слабо представляю как можно получить эти все атрибуты иначе чем этой функцией.
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
10.01.2012, 12:54  [ТС]     Спецификация файла. WTF? #6
Спасибо за помощь, все сделал.
Выкладываю код, может, поможет когда-то кому-то из глубин Google

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
#include <iostream>                             // подключаем ввод/вывод
#include <string>                               // подключаем тип данных string
#include <windows.h>                            // подключаем функции windows
#include <conio.h>                              // подключаем для работы getch()
using namespace std;                            // включаем пространство имен std
 
string fileAttributes( const char * );          // прототип функции, возвращающей атрибут файла
 
// функция main, с которой начинается исполнение программы
int main()
{
    const char path[] = "MyFile.txt";                                // задаем путь к файлу
    cout << "File is '" << path << "'.\n" << endl;                   // выводим путь файла на экран
    
    // тестируем нашу функцию
    SetFileAttributes( path, FILE_ATTRIBUTE_READONLY );              // переводим файл в режим Read-only
    cout << "File is " << fileAttributes( path ) << "." << endl;     // выводим результаты работы функции
    
    SetFileAttributes( path, FILE_ATTRIBUTE_HIDDEN );                // теперь делаем файл скрытым
    cout << "File is " << fileAttributes( path ) << "." << endl;     // выводим результаты работы функции
    
    SetFileAttributes( path, FILE_ATTRIBUTE_NORMAL );                // а сейчас возвращаем файл в нормальный режим
    cout << "File is " << fileAttributes( path ) << "." << endl;     // выводим результаты работы функции
    
    getch();                                  // ожидание символа (программа не  закрывается сразу после исполнения)
    return 0;                                 // успешное завершение программы
}
 
// функция, возвращающая атрибут файла
string fileAttributes( const char *path )
{
    DWORD Attrs = GetFileAttributes( path );           // вызываем функцию GetFileAttributes и
                                                       // результат её работы присваиваем переменной Attrs типа DWORD
 
    switch( Attrs ) {                           // возвращаем ту или иную строку в зависимости от значения Attrs
        case FILE_ATTRIBUTE_READONLY:           // если файл только для чтения
            return "readonly";                  // вернуть строку "readonly"
            break;                              // выход из 'switch'
        case FILE_ATTRIBUTE_HIDDEN:             // если файл скрыт
            return "hidden";                    // вернуть строку "hidden"
            break;                              
        case FILE_ATTRIBUTE_DEVICE:             // если файл системный
            return "device_file";               // вернуть строку "device_file"
            break;                             
        case FILE_ATTRIBUTE_REPARSE_POINT:      // если файл - метка тома
            return "point_file";                // вернуть строку "point_file"
            break;                             
        case FILE_ATTRIBUTE_DIRECTORY:          // если файл - директория
            return "directory";                 // вернуть строку "directory"
            break;                              
        case FILE_ATTRIBUTE_ARCHIVE:            // если файл архивный
            return "archive_file";              // вернуть строку "archive_file"
            break;
        case FILE_ATTRIBUTE_COMPRESSED:         // если файл сжат
            return "compressed_file";           // вернуть строку "compressed_file"
            break;
        default:                                // в любом другом случае
            return "another_file";              // вернуть строку "another_file"
            break;
    }                                           // конец switch
}                                               // конец функции fileAttributes
Кстати, такой вопрос, строка 59 не нужна ведь, да?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.01.2012, 12:57     Спецификация файла. WTF? #7
Цитата Сообщение от vortexx1 Посмотреть сообщение
Кстати, такой вопрос, строка 59 не нужна ведь, да?
не нужны и 56 и 53 и т.д.
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
10.01.2012, 13:12  [ТС]     Спецификация файла. WTF? #8
Спасибо, исправил:

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
#include <iostream>                             // подключаем ввод/вывод
#include <string>                               // подключаем тип данных string
#include <windows.h>                            // подключаем функции windows
#include <conio.h>                              // подключаем для работы getch()
using namespace std;                            // включаем пространство имен std
 
string fileAttributes( const char * );          // прототип функции, возвращающей атрибут файла
 
// функция main, с которой начинается исполнение программы
int main()
{
    const char path[] = "MyFile.txt";                                // задаем путь к файлу
    cout << "File is '" << path << "'.\n" << endl;                   // выводим путь файла на экран
    
    // тестируем нашу функцию
    SetFileAttributes( path, FILE_ATTRIBUTE_READONLY );              // переводим файл в режим Read-only
    cout << "File is " << fileAttributes( path ) << "." << endl;     // выводим результаты работы функции
    
    SetFileAttributes( path, FILE_ATTRIBUTE_HIDDEN );                // теперь делаем файл скрытым
    cout << "File is " << fileAttributes( path ) << "." << endl;     // выводим результаты работы функции
    
    SetFileAttributes( path, FILE_ATTRIBUTE_NORMAL );                // а сейчас возвращаем файл в нормальный режим
    cout << "File is " << fileAttributes( path ) << "." << endl;     // выводим результаты работы функции
    
    getch();                                  // ожидание символа (программа не  закрывается сразу после исполнения)
    return 0;                                 // успешное завершение программы
}
 
// функция, возвращающая атрибут файла
string fileAttributes( const char *path )
{
    DWORD Attrs = GetFileAttributes( path );           // вызываем функцию GetFileAttributes и
                                                       // результат её работы присваиваем переменной Attrs типа DWORD
 
    switch( Attrs ) {                           // возвращаем ту или иную строку в зависимости от значения Attrs
        case FILE_ATTRIBUTE_READONLY:           // если файл только для чтения
            return "readonly";                  // вернуть строку "readonly"
        case FILE_ATTRIBUTE_HIDDEN:             // если файл скрыт
            return "hidden";                    // вернуть строку "hidden"
        case FILE_ATTRIBUTE_DEVICE:             // если файл системный
            return "device_file";               // вернуть строку "device_file"
        case FILE_ATTRIBUTE_REPARSE_POINT:      // если файл - метка тома
            return "point_file";                // вернуть строку "point_file"                     
        case FILE_ATTRIBUTE_DIRECTORY:          // если файл - директория
            return "directory";                             
        case FILE_ATTRIBUTE_ARCHIVE:            // если файл архивный
            return "archive_file";              // вернуть строку "archive_file"
        case FILE_ATTRIBUTE_COMPRESSED:         // если файл сжат
            return "compressed_file";           // вернуть строку "compressed_file"
        default:                                // в любом другом случае
            return "another_file";              // вернуть строку "another_file"
    }                                           // конец switch
}                                               // конец функции fileAttributes
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2012, 14:48     Спецификация файла. WTF?
Еще ссылки по теме:

Спецификация EXIF: обратиться к метаданным файла - C (Си)
Прочитал спецификацию EXIF. Знаю коды тегов фотографии. Как теперь имея файл обратиться к этому тегу (прочитать информацию)? Например,...

WTF?! - Turbo Pascal
program prim5; var x,y,z:integer; begin max:=0; read(x,y,z); if max&lt;x then max:=x; if max&lt;y then max:=y; if max&lt;z then...

json_decode wtf!? - PHP
Правильно ли выводить aid из $json ? - $json-&gt;response-&gt;aid; $json = &quot;{&quot;response&quot;:} &quot;;

консоль - WTF ? - jQuery
в одном блоке я подключаю трижды один и тот же скрипт с вкладками, но естественно меняю айди и классы названия, чтоб работали автономно. ...

$this зачем wtf? - PHP
Привет пацаны :) Зачем нужен указатель $this Если можно без всяких указателей в ОПП придумать любую переменую с помощь знака $ ?


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

Или воспользуйтесь поиском по форуму:
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
10.01.2012, 14:48     Спецификация файла. WTF? #9
vortexx1, у файла может быть несколько атрибутов
Yandex
Объявления
10.01.2012, 14:48     Спецификация файла. WTF?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru