Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / тип данных папка / 9 сообщений из 9, страница 1 из 1
28.06.2016, 20:35
    #39264221
Garfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Всем привет!

подскажите кто-нибудь делал такую вещь, мне надо зафиксировать список файлов в определенной папке, а потом с этим списком работать как с папкой файлов накладывать фильтры и условия, а реальное перемещение делать на дисковой системе.. такая необходимость возникла что бы к одному списку файлов применять разные операции Дело в том что файлы постоянно пишутся в папку и набор файлов получается разный. к началу первой и последней операции.

Надо 1 зафиксировать список , 2 обработать, 3 скопировать, и 4 удалить.... на момент обработки и на момент удаления выборка по маске получается разная.

Подкиньте идею как это можно реализовать, что бы к списку применить стандартные операции выбора файлов по маске
...
Рейтинг: 0 / 0
28.06.2016, 20:39
    #39264223
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Сохрани список в массиве и работай с массивом.
...
Рейтинг: 0 / 0
28.06.2016, 20:41
    #39264225
Garfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Dima T,

у меня пока идея такаяже, сохранить список файлов с массив и с каждой записью массива проверять соответствует ли строка регулярному выражению выбора файлов
...
Рейтинг: 0 / 0
28.06.2016, 20:46
    #39264230
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Если у тебя интенсивно пишутся файлы в папку, то просто фиксируешь ее текущее состояние (в массив или еще куда), работаешь с этим состоянием не обращая внимания на то что там добавляется, удаляешь обработанное, а потом сначала, т.к. новое появилось.
...
Рейтинг: 0 / 0
28.06.2016, 20:58
    #39264235
Garfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Dima T,

а как бы мне теперь сравнить каждую строку с маской файла, что бы выбрать из массива нужные
...
Рейтинг: 0 / 0
28.06.2016, 21:05
    #39264239
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Garfishа как бы мне теперь сравнить каждую строку с маской файла, что бы выбрать из массива нужные

А сразу читать только соответствующие маске тебе мешает что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.06.2016, 21:15
    #39264245
Garfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Dimitry Sibiryakov,

у меня сейчас так сделано, так не пойдет, файлы теряются, нужно список зафиксировать
...
Рейтинг: 0 / 0
28.06.2016, 23:20
    #39264300
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
Garfish, Windows/Linux ?
...
Рейтинг: 0 / 0
29.06.2016, 15:46
    #39264789
Garfish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
тип данных папка
GarfishDimitry Sibiryakov,

у меня сейчас так сделано, так не пойдет, файлы теряются, нужно список зафиксировать


вопрос решен спасибо за идеи

делаю выборку файлов с дика по маске *.*, заношу весь список файлов в массив

потом перебираю список файлов в массиве на соответствие маске по функции

классические регулярные выражения ? и * работают нормально

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
bool __fastcall CopyTh::do_match(const T_str&  text, const T_str&  pattern)
{//проверка соответствия строки маске   
  if(pattern.empty())
    return text.empty();
  if(pattern[0] == '*')
  {
    for(T_str  new_text = text; ; new_text.erase(0, 1))
    {
      if(do_match(new_text, pattern.substr(1)))
        return true;
      if(new_text.empty())
        return false;
    }
  }
  return !text.empty() && (pattern[0] == '?' || pattern[0] == text[0])
    && do_match(text.substr(1), pattern.substr(1));
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / тип данных папка / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]