Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 2 3 4 5 6 7 8
RSS
Excel и Access могут облегчить друг другу жизнь?, как можно совмещать их способности
 
Цитата
bedvit написал: в памяти все данные  размещаются в едином блоке памяти последовательно друг за другом . Размерностей нет, это ваше привычка мыслить VBA-ным алгоритмом
это уж точно...
Цитата
bedvit написал: А цикл там есть, даже два.
первый

второй - 2 цикла

Цитата
bedvit написал:  И еще там копируется не строка, а указатели на строку (BSTR).
Код
pbstr[j + i * cElements_1] = vBSTR[out2[j] + i * cElements_1];

- просто уж очень замысловатое копирование?.. а то привыкли в vba a(i,j)... тут ещё очень сильно разобраться надо, где ячейка памяти откуда-куда... ок, попробую разобраться по вашему линку... (значит, действительно, - Арифметика указателей :) )
? по нескольким полям просто загадкой остаётся -  :qstn:  как он не начинает во второй раз сортировать с начала - а только (!) в рамках предыдущей сортировки... как и в третий раз (по третьему ключу)...?
- верю, вы правы - всё дело в алгоритме... - уж какая-то новая логика алгоритма получается, неизвестная юзерам vba...  8)
- всё дело, наверно действительно в Parallel algorithms  ??
Изменено: JeyCi - 31 Авг 2019 08:18:04
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
(просто не совсем понятно из ваших комментов по коду класса)
НО насколько поняла из самого кода:
1) все указатели на поля сортировки (далее ключи) записываем в 1 ряд [потому что так устроена память!] - в динамич-ий массив (vector) - pairs2
2) сортируем ключи:
можно через std::sort
можно (как у вас в коде) parallel_buffered_sort
3) создаём вектор out2..... который по размеру ключевого pairs2...
4) и трансформируем его (out2) - проставляем индексы в него
5) по этим индексам (в out2) - из ранее отсортированных ключей в п.2 - собираем новый порядок массива... в выходной vBSTR...
Код
pbstr[j + i * cElements_1] =     // ориентируемся по out2
- исходя из того, что индекс соответствует местоположению в уже отсортированном варианте ключей
Nota Bene:
parallel_buffered_sort is Unstable method... хотя он быстрее в ~1.6 раз метода std::sort [см. линк на msdn предыдущего поста]
p.s.
Т.Е. главная вещь, которую нужно понять - это п.4
Код
std::transform(pairs2.begin(), pairs2.end(), out2.begin(), [](const str_index& i) { return i.index; });
имхо
вобщем механика сортировки по индексам ключей и указателям на них - достаточно интересная!!..  :idea:
даже, наверно, можно сказать - реализация нормальных индексов (как на сервере) - но в Access средствами С++... имхо
Изменено: JeyCi - 31 Авг 2019 12:19:14
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Делаете успехи, отрадно читать.
По последнему пункту std::transform
И Лямбда-выражения в C++
«Бритва Оккама» или «Принцип Калашникова»?
 
благодарю, буду дальше изучать...
кстати да, лямбда-выражения положены в основу Функциональных Языков - помню листала при знакомстве с LINQ'ом... оказывается и в С++ они есть...
Код
[](const str_index& i) { return i.index; }
только с синтаксисом разобраться... или его вариации..
и цикл тут не нужен...
т.к. итератор (в данном случае инкремент) в самой std::transform заложен (видимо, не в лямбда выражении нашем)
Код
//reference (std::transform)
template<class InputIt1, class InputIt2,
         class OutputIt, class BinaryOperation>
OutputIt transform(InputIt first1, InputIt last1, InputIt first2,
                   OutputIt d_first, BinaryOperation binary_op)
{
    while (first1 != last1) {
        *d_first++ = binary_op(*first1++, *first2++);
    }
    return d_first;
}
p.s
они (лямбда-выражения) судя по линку вашему только с C++ v.11 появились и версиях выше... ок, приму на заметку
Изменено: JeyCi - 1 Сен 2019 08:04:13
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
bedvit написал: Делаете успехи, отрадно читать.
:D ну наконец - обновила свой 2010 до C++ !! - сама рада этому успеху!... всё оказалось не так страшно, как думала - думала, придётся сносить всю систему и расширять partition C: ... но в принципе на 50гб диска (~40 было занято) уложила довеском к vs2010 (c#,vb, web) ещё и С++... теперь уж точно можно осваивать новые горизонты...
глаза бояться - а руки делают...
===
bedvit, спасибо вам за вашу разработку этой надстройки - очень полезная вещь! - и такой качественный ликбез!
Изменено: JeyCi - 10 Сен 2019 18:24:05
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Да, лямда-выражения появились в стандарте С++11. Студия 2019 уже поддерживает часть стандарта С++20.
Вы поставили студию, какой версии?
Цитата
JeyCi написал:
спасибо вам за вашу разработку этой надстройки - очень полезная вещь!
Пользуйтесь ...код должен работать, а не отдыхать в библиотеке...
Изменено: bedvit - 10 Сен 2019 23:45:41
«Бритва Оккама» или «Принцип Калашникова»?
 
Off
Цитата
JeyCi написал:
придётся сносить всю систему и расширять partition C
Это еще зачем? Разбит был не так как нужно, так куча софта изменяющие разделы без порчи. Много лет делаю по возможности патицию основную максимально большой, чтоб потом не чертыхаться, что на второй полно места, а на системной совсем нет. Редко кто профиль и прочее переносят на второй логический.
Изменено: БМВ - 11 Сен 2019 16:29:20
 
Цитата
БМВ написал: Разбит был не так как нужно, так куча софта изменяющие разделы без порчи
всегда использовала Acronis Disk Director... честно говоря, быстрее двигает чистые разделы... но мне сейчас для vs2019 только если увеличить Системный С... честно говоря помню, что изменяя размер системного диска - систему лучше менять (иначе будут сбои)... вот и переустанавливала всё  :oops: обычно...
если есть удобная известная вам альтернатива софту для этих целей ! без порчи имущества ! - направьте please - а то в поисках опять заблужусь...  8)
Изменено: JeyCi - 11 Сен 2019 09:09:38
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
БМВ написал:
Редко кто профиль и прочее переносят на второй логический.
Потому, что смысла в этом нет ни грамма.
Я вот всегда систему ставлю на один диск, а профиль и программы ставлю на другой, но не логический, а физический. Скорость и надёжность повышаются.
Цитата
JeyCi написал:
если есть удобная известная вам альтернатива софту для этих целей
Ещё с древнейших времён пользовался программой Partition Magic, но её забросили разработчики и работает ли она в win10 я не в курсе. А так удобная и простая штука была.  
 
Цитата
Мартын написал: Partition Magic, ... удобная и простая штука была.
раньше тоже ей пользовалась...
интересует софтина без надобности потом переустанавливать систему... ?
Изменено: JeyCi - 11 Сен 2019 10:26:58
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
OFF
JeyCi, https://www.easeus.com/partition-manager/epm-free.html И двигал и менял размер - системы живы и нормально работают. Установил , запустил , обработал перезагрузился, пару раз - все сделано. Бывают вапады мол что-то не то, но после второй перезагрузки все ок.
Цитата
Мартын написал:
Потому, что смысла в этом нет ни грамма.
это не правда - все зависит от рук и потребностей. Много лет назад разносили систему и профиль пользователей и в случае необходимости перегенерировать систему - данные оставались нетронутыми и не требовали извлечения ни с диска ни с бэкапа, если система мертва совсем .
Цитата
Мартын написал:
Я вот всегда систему ставлю на один диск, а профиль и программы ставлю на другой
И это сомнительно при наличии SSD Скорость уже не так будет заметна. Большие объемы - да, лучше на отдельный винт. например для обработки нелинейной видео лучше иметь источник на одном, результат на другом а промежуточные рендеренгим на третьем и все на быстрых дисках.
Изменено: БМВ - 11 Сен 2019 17:59:35
 
Цитата
БМВ написал:
для обработки нелинейной видео лучше иметь источник
Ну, всё тема взаимодействия Excel и Access плавно перешла в обсуждение железа, видеокодирования :)
 
Цитата
Андрей VG написал:
Ну, всё тема взаимодействия
Согласен
 
БМВ, там цитата не моя!.. - в вашем посту...
за линк спасибо - если кто захочет поэкспериментировать с кодом от bedvit - и встретится с такой же проблемой, как я с vs2019 - ваш ответ в помощь
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
bedvit написал: Вы поставили студию, какой версии?
пока что vs2010
как рискну воспользоваться советом от БМВ - попробую 2019... не знаю скоро ли - вопрос времени... но думаю на первых порах знакомства и 2010 можно поюзать?... имхо
или она ещё не поддерживает лямбда-выражения?.. - вобщем буду разбираться...
да и на 2010 примеров, мне показалось, больше в сети... поэтому не гоняюсь за последними release'ами обычно
Изменено: JeyCi - 11 Сен 2019 17:12:28
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Visual Studio 2019 Системные требования не сильно больше, чем 2010.  Типичные установки требуют 20-50 ГБ свободного места. Хотя, я так понял, вы Visual Studio 2010 на 10ГБ уместили? тогда да, маловато десятки для Visual Studio 2019...
Изменено: bedvit - 11 Сен 2019 18:32:08
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал: я так понял, вы Visual Studio 2010 на 10ГБ уместили?
сложно сказать - давно это было... оно, наверно, как-то в разные папки поместилось - vs отдельно, сервер отдельно, ещё NET.Framework, IIS и т.д. (вижу все эти папки есть) - сколько в общей сложности было затрудняюсь сказать (не помню, что из install, а что нет)...
с++ просто довеском обновила - добавилось немного...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
да, BSTR - отдельная история (линки оставила для начала) - обратить внимание на то, что у Microsoft появилась обёртка bstr...
и вообще языки группы С (С++, С#) со строками имеют особые отношения (там же постом выше по NET линк)...
===
поэтому задам, наверно, последний насущный вопрос для возможности экспериментов с новым языком и надстройкой COM (пока ещё не нащупала это в VS):
КАК тестировать надстройку COM в VS ?? (что-то не google'ится)... когда всё-таки осилю эту новую тему - в качестве итога - понимаю, что ещё в VS захочется увидеть !! "Передаётся ли нужное в VBA (в данном случае) или нет"... как это проконтролировать ещё на стороне VS  :qstn:  до компиляции COM-надстройки??...
может и банальный вопрос (т.к. всё смотрим в переменных по коду и логически там и посмотреть значение выходной переменной) - но всё-таки спрашиваю, на всякий случай, у знающих из практики...
(если спецы ещё заглянут в ветку)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: Пред. 1 2 3 4 5 6 7 8
Читают тему (гостей: 1)
Наверх