Так же может быть нужно добавить поле DEND - куда заносить дату/время окончания действия аттрибута. Но можно и без этого, тогда дата окончания действия будет равна DBEG новой записи. Т.е. при необходимости подобной выборки запрос будет несколько сложнее, чем при наличии DEND.
Вам надо в потоковую функцию передавать 3 параметра: n0, n1, ∑, а т.к. туда можно передать только один, то заведите для этих целей структуру или массив струтур (по 1 для каждого потока) и в поток передавайте адрес структуры.
В этом случае мьютексы просто не нужны, т.к. не будет в принципе доступа к одним и тем же ресурсам, т.к. каждый поток будет записывать сумму в свою собственную переменную.
В цикле, в котором создается поток, нужно сначала рассчитать для потока значения n0 и n1 и сохранить их в структуру, адрес которой передадите в поток.
Примерный алгоритм расчета n0/n1:
n1 = 0;
delta = maxn1/number_threads;
for( long unsigned int i = 0; i < number_threads; ++i){
n0 = n1 + 1;
if(i<(number_threads-1)
n1 += delta;
else
n1 = maxn1;
t[i] = thread(Work, ... );
}
В коде выше n0 и n1 - должны быть соответствующими членами структуры.
И в заключении - перед выводом суммы вам нужно будет сложить все суммы потоков, это можно сделать в цикле после t[i].join();
Максим: Встроенный фаервол в винде может заблокировать всю подсеть атакующего, когда вы настроите соответствующее правило. Вообще он достаточно продвинутый уже.
И когда это вы сам блокируете контент на сайтах? Если это не родной антивирь, значит это какой-то другой, либо какой-нибудь Adblock. Самому все время это делать - достаточно утомительно. Так что "сам блокирую" - это вы выдаете желаемое за действительное.
А антивирь у мелкомягких, по моему, не хуже других бесплатных антивирей.
Если убрать весь функционал с директориями, то файл будет создаваться в текущем каталоге, а это не всегда нужно и можно. Функционал с директориями создает файл во временном каталоге, где обычно можно и нужно создавать подобные файлы.
findstr в цвете выводит только имя файла, найденная строка выводится цветом по умолчанию. Поэтому без файла не обойтись.
Стандартная конструкция "без файла" выглядит примерно так: echo .|findstr /a:0A /c:"." /s
Можете экспериментировать.
Подобный переход всегда геморройно, особенно когда до этого все время сидели на винде. А вообще - ничего невозможного нет, все упирается во время и деньги.
Для этого я и написал "переходить на линукс".
Вряд ли наш самый гуманный суд в мире вынесет решение в пользу микрософт, имея ввиду санкции. Но это, конечно, пока не попробуешь не узнаешь. Поэтому с переходом затягивать не следует. Давно уже было сказано - всем импортозамещаться :)
Антон Агальцов: С серверными виндами то же самое, что и с десктопными. Могут быть проблемы с оборудованием, если у вас в сервере какой-нибудь экзотический рейд или еще что-нибудь.
Так же нужно точно знать где лежат файлы БД. Обычно их 2, но может быть и больше.
Если удастся таким образом забрать файлы БД, то после того как скопируете их на целевой сервер сделаете операцию Attach в студии и база подцепится.
Если нужна гарантия очистки всего диска, то да разбирать и чистить каждый диск.
Если нужно гарантированно удалить несколько файлов, то есть соответствующий софт. Принцип действия такой - оригинальный файл перезаписывается несколько раз рандомными данными, затем удаляется штатными средствами ОС.
Но в случае с рейдом этот вариант может не сработать, т.к. у рейд контроллера может быть своя политика записи, например он может не записывать в тот же блок, а делать новую запись, а старый блок помечать как свободный или что-нибудь в это роде.
Если денег нет, то можно пойти несколькими путями:
1.Поищите что-нибудь из свободного софта, например есть OpenDLP.
2.Действуйте административными мерами: в БИОСе запрещаем USB, назначаем приказом 1-2 сотрудников ответственных за копирование. К ним будут приходить люди с флэшками, они будут копировать и делать копии скопированного :)
Во втором пункте могут быть проблемы, например в конторе повсеместно используются USB клавиатуры и мышки, а биосы не позволяют отключать отдельные порты.
3.выбить деньги на нормальную DLP, обосновав не возможностью реализации задуманного свободным софтом
4.Если есть навыки программирования реализовывать самому.
Он прекрасно работает и без инсталяции. Установите на 1 машину, а дальше распространяйте каталог с установкой. Я скопировал этот каталог на сетевую шару наделал конфигов и ярлыков с нужными параметрами, юзерам на раб.стол раскидал нужные ярлыки - работает без установки на каждую раб.станцию.
В варианте с for так:
>>myFiles.txt echo."%%~fa"
С dir на прямую не получится, но можно так же вывод завернуть в for и добавить кавычки:
for /f /"tokens=* delims=" %%a in ('dir /b /s %pathdir%') do >>myFiles.txt echo."%%~a"
markwin: :) вы упорствуете в своем заблуждении.
А почему вы берете только Windows? Базы данных и текстовые файлы появились, наверное, сразу как только появилась первая ЭВМ и первое хранилище информации.
В ODBC/ADO есть драйвер для работы с csv - это те же текстовые файлы с разделителями. Там можно использовать SQL для запросов. Но возможности этого драйвера сильно ограничены и он не поддерживает весь стандартный набор SQL команд. Он годится только для простейших операций. Для ваших целей он вряд ли подойдет.
Кстати, пока писал, пришла мысль - можно воспользоваться Accessом - база данных, SQL поддерживается, есть всякие визуальные конструкторы и прочие плюшки, разобраться будет не сложно. Поддерживается импорт/экспорт из/в текстовых файлов.