powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / тип данных папка
9 сообщений из 9, страница 1 из 1
тип данных папка
    #39264221
Фотография Garfish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

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

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

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

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

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

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

у меня сейчас так сделано, так не пойдет, файлы теряются, нужно список зафиксировать
...
Рейтинг: 0 / 0
тип данных папка
    #39264300
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garfish, Windows/Linux ?
...
Рейтинг: 0 / 0
тип данных папка
    #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
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / тип данных папка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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