Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269

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

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

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

Заранее спасибо.
Миниатюры
Спецификация файла. WTF?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2012, 20:20
Ответы с готовыми решениями:

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

WTF: go (1)
package main import ( "fmt" "log" ) func main() { log.Println("Начало цикла") ...

WTF? 3
Продолжаю серию публикаций неведомой фигни. Кто знает шо це воно таке? Массивная добротная фарфоровая хрень. На борту надпись K600 0704 ...

8
 Аватар для vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
07.01.2012, 21:11  [ТС]
Пожалуйста, кто-нибудь!
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.01.2012, 22:19
имя файла и путь имеется ввиду наверное.

Добавлено через 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.
1
 Аватар для vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
07.01.2012, 23:45  [ТС]
Спасибо. А как посмотреть реализацию этой функции в windows.h?
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
08.01.2012, 00:13
vortexx1, никак

тебе лучше уточнить задание (точно оно в этом?), т.к лично я слабо представляю как можно получить эти все атрибуты иначе чем этой функцией.
1
 Аватар для vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
10.01.2012, 12:54  [ТС]
Спасибо за помощь, все сделал.
Выкладываю код, может, поможет когда-то кому-то из глубин 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 не нужна ведь, да?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.01.2012, 12:57
Цитата Сообщение от vortexx1 Посмотреть сообщение
Кстати, такой вопрос, строка 59 не нужна ведь, да?
не нужны и 56 и 53 и т.д.
1
 Аватар для vortexx1
6 / 6 / 3
Регистрация: 06.03.2011
Сообщений: 269
10.01.2012, 13: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
#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
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
10.01.2012, 14:48
vortexx1, у файла может быть несколько атрибутов
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2012, 14:48
Помогаю со студенческими работами здесь

WTF? 4
Загадка. Маленький, красненький, с 10 ногами, на светодиод похож. ...

WTF?!
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...

WTF? 6
Приветствую любителей рубрики WTF? ) Бутор стоял в старом модеме British Telesom. На стекляшке надписи: N519, 562, 2%, WC. На большой...

WTF: go (2)
package main import ( &quot;bytes&quot; &quot;strconv&quot; ) func main() { var buffer bytes.Buffer value := 100

WTF 2
Что это шестиногое? - Доктор, посмотрите, что это у меня? - ААА!! ЧТО ЭТО У ВАС?! ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru