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

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

Войти
Регистрация
Восстановить пароль
 
ExFau$t
333 / 319 / 61
Регистрация: 08.05.2012
Сообщений: 1,645
#1

Просмотреть директорию с картинками jpeg, узнать сколько там файлов и по одному загрузить их в массив - C++

26.08.2016, 09:24. Просмотров 244. Ответов 9
Метки нет (Все метки)

Здравствуйте, помогите, пожалуйста, разобраться. Такая задача: есть некая директория, где лежат картинки jpeg. Нужно просмотреть эту директорию, узнать сколько там файлов и по одному загрузить в массив байт. Массив не двумерный, как везде есть, и картинка не bmp.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2016, 09:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Просмотреть директорию с картинками jpeg, узнать сколько там файлов и по одному загрузить их в массив (C++):

В зависимости от того, сколько файлов уже было загружено, определить директорию, куда загружать новый - PHP БД
В БД есть 3 колонки: file_new, file_new2 и file_new3. Если в file_new пусто, то файл грузится сюда. Если в file_new уже есть файл, то...

Массив. Сколько раз попадается там заданное число? - C++
Ребята, привет! Очнеь стыдно, но попросили помочь... Проблема в том, что я массивы сам задавал, а не читал с файла! В итоге задача...

Как узнать сколько файлов в папке? - C#
Как узнать сколько файлов в папке. Можно код для примера. Подскажите кто знает. Спасибо зарание

Определить, сколько чисел входят в массив только по одному разу - Free Pascal
Ребяят, помогите с двумя задачками по Pascal...если по первой примерно знаю, то по второй не пойму че как...ооочень нужен код( ...

Как загрузить в массив названия файлов? - VBA
Подскажите пожалуйста. Как загрузить в массив названия файлов? Пытаюсь использовать функцию DIR(), но она требует указать полный путь:...

Дан массив. Выяснить, сколько чисел входит в последовательность по одному разу - PascalABC.NET
Дан массив. Выяснить, сколько чисел входит в последовательность по одному разу

9
vxg
Модератор
3172 / 1975 / 222
Регистрация: 13.01.2012
Сообщений: 7,609
26.08.2016, 09:35 #2
ExFau$t, какая разница что в файле если вы просто откроете его и прочитаете в вектор?

Добавлено через 2 минуты
C++
1
2
3
4
FILE *f = fopen(file_name, "rb");
BYTE buffer[100000];
fread(buffer, 100000, 1, f);
fclose(f);
0
ExFau$t
333 / 319 / 61
Регистрация: 08.05.2012
Сообщений: 1,645
26.08.2016, 09:50  [ТС] #3
vxg, ну а как "проканировать" директорию, чтобы узнать количество, размеры и имена файлов?
0
MansMI
1277 / 1055 / 291
Регистрация: 08.01.2012
Сообщений: 3,992
26.08.2016, 10:00 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    setlocale(LC_ALL, "Russian");
    char path[100]="C:\\Documents and Settings\\Администратор\\Рабочий стол";
    //cout<<"Путь: \n";
    //gets_s(path,100);
    WIN32_FIND_DATA inf;
    HANDLE hnd;
    if(SetCurrentDirectoryA(path))
    {
        if(hnd=FindFirstFileA("*.jpg",(LPWIN32_FIND_DATAA)&inf))
        do
            if(!(inf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                cout<<(LPCSTR)inf.cFileName<<endl;
                //..........................
            }
        while(FindNextFileA(hnd,(LPWIN32_FIND_DATAA)&inf));
        FindClose(hnd);
    }
    system("pause");
1
vxg
Модератор
3172 / 1975 / 222
Регистрация: 13.01.2012
Сообщений: 7,609
26.08.2016, 10:12 #5
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
    ffblk rec;
 
    std::string target = folder + '\\' + filter;
    for
    (
        int founded = findfirst(target.c_str(), &rec, FA_NORMAL);
        !founded;
        founded = findnext(&rec)
    )
    {
        if (rec.ff_name[0] != '.' && rec.ff_attrib ^ FA_DIREC)
        {
            struct stat si;
            if (stat(rec.ff_name, &si))
            {
                //что-то пошло не так
            }
            else
            {
                //размер тут - si.st_size
            }
        }
    }
    findclose(&rec);
1
ASCII
90 / 63 / 10
Регистрация: 15.12.2013
Сообщений: 407
Завершенные тесты: 2
26.08.2016, 10:48 #6
vxg, Это вообще что? Псевдокод?
0
ExFau$t
333 / 319 / 61
Регистрация: 08.05.2012
Сообщений: 1,645
26.08.2016, 10:52  [ТС] #7
Да, это почти то, что нужно, спасибо.
0
ExFau$t
333 / 319 / 61
Регистрация: 08.05.2012
Сообщений: 1,645
27.08.2016, 13:00  [ТС] #8
Подскажите ещё, мне этот массив надо перевести в Base64 для последующей передачи, но в System::Convert::ToBase64String(buffer) не могу сообразить как byte[] или char перевести в array<unsigned char,1>^ , а после получения String^ не пойму почему json её не берёт:

Ошибка 15 error C2664: rapidjson::GenericValue<Encoding>::GenericValue(rapidjson::GenericValue<Encoding> &&): невозможно преобразовать параметр 1 из "System::String ^" в "rapidjson::GenericValue<Encoding> &&"

Добавлено через 8 минут
То есть порядок действий такой - считать из файла, перевести в Base64, засунуть в json. Пока что получается между каждым действием приходится вставлять конвертер.

Добавлено через 25 минут
На данный момент сделал так:
C++
1
2
3
4
5
6
7
8
9
10
long fsize;
FILE *f = fopen((LPCSTR)inf.cFileName, "rb");
fsize = filelength(fileno(f));
char *buffer = NULL;
buffer = (char*)malloc(fsize);
fread(buffer, fsize, 1, f);
fclose(f);
array<Byte>^ data = gcnew array<Byte>(fsize);
System::Runtime::InteropServices::Marshal::Copy(IntPtr(&buffer), data, 0, fsize);
System::String^ base64 = System::Convert::ToBase64String(data);
Добавлено через 8 минут
& - перед buffer лишний
0
vxg
Модератор
3172 / 1975 / 222
Регистрация: 13.01.2012
Сообщений: 7,609
27.08.2016, 13:24 #9
ExFau$t, у вас такой порядок действий потому что вы не в C++ а в управляемом коде пишите
0
ExFau$t
333 / 319 / 61
Регистрация: 08.05.2012
Сообщений: 1,645
27.08.2016, 13:54  [ТС] #10
vxg, эстетику я потом наведу, мне надо сделать и быстро.
0
27.08.2016, 13:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2016, 13:54
Привет! Вот еще темы с ответами:

Как узнать сколько в дериктории файлов определенного типа? - Visual Basic
Мне нужно узнать сколько в дериктории файлов определенного типа из если их больше заданного количества удалить самый ранний из нах....

С заданного диска удалить все файлы с заданным расширением, создать там заданную директорию, и в эту директор - Assembler
С заданного диска удалить все файлы с заданным расширением, создать там заданную директорию, и в эту директорию с другого диска с заданной...

Установка в выбранную директорию 2 файлов и автоматическое занесение файлов реестра - Delphi
Здравствуйте. Мне нужно чтобы моя прога установила в выбранной директорию 2 файла. И у меня есть файл реестра нужно чтобы она автоматически...

Как открывать с поддомена домена, привязанного к одному серверу, директорию на другом сервере - PHP
Итак есть 2 сервера и 2 домена. Назовем их сервер A и B и домен A и B соответственно. Был создан поддомен домена А и в него были...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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