Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 32 След.
Снятие Project is unviewable VBA через OpenOffice
 
Думаю, самый эффективный способ - связаться с разработчиком/автором надстройки.
«Бритва Оккама» или «Принцип Калашникова»?
Пользовательская функция - записи в txt и чтения из txt
 
Цитата
Dim Ozerov написал:
вот у вас в коде стоит ожидание
Код не менял, взял ваш.
Действительно Application.Wait не срабатывает, надо посмотреть почему.
Можно сделать так:
Код
#If VBA7 Then
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal milliseconds As LongPtr) 'MS Office 64 Bit
#Else
    Public Declare Sub Sleep Lib "kernel32" (ByVal milliseconds as Long) 'MS Office 32 Bit
#End If
Const file1 As String = "C:\1\1.txt"
Const file2 As String = "C:\1\2.txt"
Function GetFileString(RangeX As Range) As String
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(file1) Then
        Set objOTS = objFSO.OpenTextFile(file1, 8)
    Else
        Set objfile = objFSO.CreateTextFile(file1)
        Set objfile = Nothing
        Set objOTS = objFSO.OpenTextFile(file1, 8)
    End If
    objOTS.Write vbNewLine & RangeX.Value
    'Application.Wait (Now + 2 / 86400)
    Sleep 2000
    Set objTextFile = objFSO.OpenTextFile(file2, 1)
    GetFileString = objTextFile.Readall
    Set objTextFile = Nothing
    Set objOTS = Nothing
    Set objFSO = Nothing
End Function
«Бритва Оккама» или «Принцип Калашникова»?
Пользовательская функция - записи в txt и чтения из txt
 
Добавил ввод данных из ячейки в файл (запамятовал в первой реализации).
Смотрим:
Код
Function GetFileString(RangeX As Range) As String
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(file1) Then
        Set objOTS = objFSO.OpenTextFile(file1, 8)
    Else
        Set objfile = objFSO.CreateTextFile(file1)
        Set objfile = Nothing
        Set objOTS = objFSO.OpenTextFile(file1, 8)
    End If
    objOTS.Write vbNewLine & RangeX.Value
    Application.Wait (Now + TimeValue("0:00:02"))
    Set objTextFile = objFSO.OpenTextFile(file2, 1)
    GetFileString = objTextFile.Readall
    Set objTextFile = Nothing
    Set objOTS = Nothing
    Set objFSO = Nothing
End Function
«Бритва Оккама» или «Принцип Калашникова»?
Пользовательская функция - записи в txt и чтения из txt
 
Пожалуйста...
«Бритва Оккама» или «Принцип Калашникова»?
Пользовательская функция - записи в txt и чтения из txt
 
Цитата
Sanja написал:
Вы собираетесь вставить функцию в txt-файл?
я так понял нужно вставить какой-то текст из одной ячейки в один txt файл, а из другого txt файла текст вставить в другую ячейку, как результат функции.
«Бритва Оккама» или «Принцип Калашникова»?
Пользовательская функция - записи в txt и чтения из txt
 
Если есть процедура, в чем сложность положить этот код в функцию? Возвращайте функцией код ошибки, если что-то пошло не так и к примеру 0 если все прошло без ошибок.
Изменено: bedvit - 15 Апр 2018 07:32:06
«Бритва Оккама» или «Принцип Калашникова»?
Преобразовать дату в текст
 
Функция ТЕКСТ()
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
05/04/2018 - Новая версия BedvitCOM v.1.0.0.2 и BedvitXLL v.1.0.0.2

Изменения:
1. Изменен порядок аргументов в методе "BignumSet" (теперь, как во всех других методах, номер длинного числа в массиве - стоит первым аргументом), см.под спойлером

Скрытый текст


2. Добавлены новые методы в два класса (запись длинного числа в файл .txt и чтение из файла)
.FileSet, .FileGet (описание в .Help и ниже)
3. Собраны библиотеки COM и XLL в 32-разрядной версии (с корректным Help-ом, описанием интерфейса).

Свойства и методы (интерфейс) последней версии библиотеки COM (есть в .Help):
Скрытый текст

Библиотеки не пролезают, поэтому здесь.
«Бритва Оккама» или «Принцип Калашникова»?
Как воспроизвести функцию листа в UDF без использования аналогов на VBA?
 
Цитата
RAN написал:
Вот я я не пойму, о чем это,ЦитатаКак воспроизвести функцию листа в UDF без использования аналогов на VBA?
Тоже не заметил соответствия названия темы и содержания :)
Цитата
RAN написал:
Если формулы листа, то это не UDF, а если UDF - то на VBA.Или речь о com надстройке?
не обязательно на VBA. UDF можно написать и в .xll библиотеке (win api), и в COM.dll
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
Дмитрий, спасибо за информацию, познавательно. В общем-то защита листа и книги больше сделана на "править где и что нужно, что бы не тыкнули в ненужное", инфо забрать можно и с защищенного листа. Главное файл открыть, а дальше не важно, где пароли для проекта VBA, для листа, для книги, инфо читается на раз.
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
Михаил Комиссаров,  вы путаете взлом пароля на файл Excel(на открытие файла) и взлом пароля на защиту книги (и листа), которые до 2007 Excel ломались очень легко.
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
bybalyuba, вам просто напомнили что нужно разумно подходить к проблеме. Никто вам не отказал, и  даже наоборот, пути указали...
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
С одной стороны есть авторские права на собственные разработки, которыми автор волен распоряжаться как пожелает, и данные рабочего процесса, за которые вам платят, права на эти данные предполагаю, за заказчиком.
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
bybalyuba,  ваша идея не совсем понятна. Что за таблицы? Какому руководству? Какие данные в таблице. Если это рабочие данные, то что значит
Цитата
bybalyuba написал:
я не хочу чтобы начальнику достались мною созданные таблицы.
?
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
Дмитрий, я собственно про тоже. Не знаю эффективных алгоритмов, к примеру и .rar по этой же причине за приемлемое время не сломать (если пароль не "123").
Виктор, предполагаю, даже наоборот, данная инфо говорит о том, что эта идея не лучшая (ломать файлы). Если пароль знаков в 15, уверен файл не сломать за приемлемое время (предполагаю, у каждого файла есть срок жизни информации в него заложенной, после чего она уже не нужна никому).
«Бритва Оккама» или «Принцип Калашникова»?
Как сделать файл неоткрываемым?, Как сделать файл неоткрываемым? Нужно чтобы файл был, но уже никогда не мог открыться.
 
Цитата
Wiss написал:
Казанский , а разве пароль на открытие не ломается специальными прогами?
А есть эффективный алгоритм слома, кроме брутфорса(лет на 100, если пароль нормальный)?
«Бритва Оккама» или «Принцип Калашникова»?
Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа (Open FileName As Binary и Get, Put через байт-массив)
 
Например можно добавить такой лист в свою надстройку, загрузить библы на С++ или другом языке, распаковывать и пользоваться прямо из VBA, вызывая при необходимости. Все в одном файле xlam. Плюсом - такой код быстрее, тяжелее скопипастить, чем на VBA, легче разворачивать - один файл - открыл и пользуйся. Механизм похож на загрузку бинарных данных в ресурсы dll. К примеру в xll ресурсах упакована com.dll в моём, недавно выложенном, решении. В общем можно положить в ресурсы что угодно и использовать по мере необходимости.
Изменено: bedvit - 28 Мар 2018 23:18:39
«Бритва Оккама» или «Принцип Калашникова»?
Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа (Open FileName As Binary и Get, Put через байт-массив)
 
Цитата
Jack Famous написал:
я так и не понял, что эта штука делает и как работает,
все просто: зайдите в модуль листа запустите первую процедуру (стартовое меню), далее выбирайте нужное действие. В модуле обычном написан тест распаковки и запуск файла упакованного в листе. В данном случае расчёт числа Пи. Запустите тест и посмотрите результат.
Т.е. можно использовать в вашей программе  функции на загрузку, просмотр, удаления и выгрузку/запуск загруженных файлов в Excel. Или использовать стартовое меню, что бы делать все вышеназванное через диалог (кроме запуска, запуск сейчас только программно).
Для этого достаточно кода, который написан в листе с хранимыми данными. Лист можно перемещать в другие проекты без потери данных (не копировать!), а можно скопировать сам код, вставить на ваш лист и он станет хранилищем (нужные данные сами зальете).
Изменено: bedvit - 28 Мар 2018 20:31:27
«Бритва Оккама» или «Принцип Калашникова»?
Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа (Open FileName As Binary и Get, Put через байт-массив)
 
Jack Famous, Здорово, спасибо!
«Бритва Оккама» или «Принцип Калашникова»?
Возможность вложения своих файлов в структуру книги
 
Добавил инфо. Можно посмотреть по ссылке выше.
«Бритва Оккама» или «Принцип Калашникова»?
Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа (Open FileName As Binary и Get, Put через байт-массив)
 
21/11/2017 Обновление версии: Loader_02
1.Процедуры переписаны в функции, которые возвращают при успешном выполнении, количество загруженных, удаленных, выгруженных файлов.
2.Добавлена пакетная загрузка файлов (выгрузка и удаление всех файлов уже было в первой версии) с корректным счетчиком.
3.Добавлено описание к коду и аргументам функций.
4.Добавлен запуск файлов как "приложением по умолчанию" так и через Excel.
5.Добавлен обработчик ошибок, с выводом сообщений об ошибке.
6.Добавлен запрос/вопрос пользователю на перезапись выгружаемых и загружаемых файлов, если они уже есть.

22/03/2018 Обновление версии: Loader_03
1.Добавил стартовое меню.
2.Добавил поддержку командной строки (на примере расчета числа Пи - программа упакована моя, вирусов нет.).
3.Изменил порядок параметров для функций на более логичный.

Файл сейчас выложить не могу (нужно размер подогнать) дам ссылку на поддерживаемый ресурс.
«Бритва Оккама» или «Принцип Калашникова»?
Возможность вложения своих файлов в структуру книги
 
Справедливо хочу отметить, что моё решение возникло благодаря информации от Андрей VG. За что ему большое спасибо! Причём есть более свежий вариант упаковщика, отмечу это в той теме сейчас.
«Бритва Оккама» или «Принцип Калашникова»?
Узнать код стандартной функции и посмотреть его в VBA
 
Если да же найти кусок кода этой функции и посмотреть его в декомпиляторе, написан он все равно на Си под С API.  Поэтому отношения к VBA он не имеет. За исключением, того, что VBA транслятор может быть тоже написан на Си\С++.
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
Поделился и на Киберфоруме.
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
sokol92, Считается одной из быстрейших. Тестируйте)
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
Jack Famous, спасибо за оценку, пользуйтесь :)
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
Андрей Приветствую! Буду рад, если пригодится это решение. С вопросами, если будут, обращайся, отвечу. :)
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
Критику принимаю, не барышня). Писал для интереса. пользоваться можно любым приложением поддерживающим COM. Сфера применения - вычисления с большой точностью, а так же поклонники нестандартных решений, и тестирование возможностей ПК и программ (для таких, как я).
Изменено: bedvit - 26 Мар 2018 23:00:28
«Бритва Оккама» или «Принцип Калашникова»?
Длинная арифметика (Bignum arithmetic ) c COM-интерфейсом и C API Functions для Excel. С/С++
 
Проект основан на исходниках (на С++) библиотеки MPIR, Edition 3.0.0.
Полностью написан на С/С++.
Скорость на порядок выше предыдущего решения на C#.NET.
Реализовал два блока в проекте:
1.DLL c COM интерфейсом. Реализованы dual-интерфейсы с Automation-совместимыми типами данных, структур
(поддержка как раннего вывязывания, так и позднего). Ранний предпочтительнее в части скорости (на 50% быстрее).
Реализовано два класса: класс целых чисел с арифметикой (BignumArithmeticInteger) и класс чисел с плавающей точкой (BignumArithmeticFloat). При создании экземпляра класса создается массив из 256 чисел с арифметикой.
К числам можно обращаться по номерам (была задумка ввести имя, но оправдывает ли это удобство потери в скорости?)
BignumArithmeticInteger (Bignum) увеличивается в памяти по мере расчета автоматически, перераспределяя память.
BignumArithmeticFloat (Bignum), задается изначально, т.к. дробь может быть бесконечной (по умолчанию принимается минимальный размер).
Размер чисел ничем не ограничен, кроме вашей оперативки.

Регистрация COM реализовано как под админом, так и под пользователем (актуально в офисной части клиентов)
Регистрация стандартная:
Админ: Regsvr32 "...\полный путь\FulName.DLL"
Пользователь: Regsvr32 /i /n "...\полный путь\FulName.DLL"

Примеры использования см. ниже.

2.XLL для Excel с C API - функциями. Добавил базовый набор. Будет потребность в дополнительных - добавлю по запросу.
Для функций создано два раздела в стандартном списке с названиями классов в COM (+один общий).
Функции поддерживают многопоточные расчеты.
Работа с функциями как с обычными (различий нет). Обычные написаны тоже на С/С++ под C API.

В XLL ресурсы упакована COM.DLL, распаковывается и устанавливается под пользователем - автоматом.
Поэтому открываем XLL или устанавливаем как надстройку - готово (ничего регистрировать не надо).
Пишем код в VBA и работаем. Советую раннее связывание. Видим свойства и методы объекта.
Оные можно посмотреть и в диспетчере объектов (см. рис.)

Примеры см. ниже.

Где тестировалось:
VBA:
Код
Sub RUN() 'ЗАПУСКАЕМ
Dim I As Long: With ThisWorkbook.VBProject.References 'подключаем библу для раннего связывания
  For I = 1 To .Count: If .Item(I).GUID = "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}" Then Continue: Exit Sub 'если "BedvitCOM" в подключенных - завершаем
  Next I
  .AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0: Continue: End With ' подключаем библу "BedvitCOM"
End Sub
Sub Continue()
Dim I As BignumArithmeticInteger
Set I = New BignumArithmeticInteger 'Создаем массив целых больших чисел и арифметикой (класс)
Dim F As BignumArithmeticFloat
Set F = New BignumArithmeticFloat 'Создаем массив больших чисел с плавающей точкой и арифметикой (класс)
 
I.Bignum(1) = "111" & String$(100, "1") 'добавляем число из 103 единиц в первое целое длинное число
I.BignumSet "111" & String$(100, "1"), 1 'или так
F.SizeBits(1) = 256 'задаем размер в битах для 1го числа с плавающей точкой
F.SizeBits(2) = 256 'задаем размер в битах для 2го числа с плавающей точкой
F.SizeBits(3) = 256 'задаем размер в битах для 3го числа с плавающей точкой
F.Bignum(1) = I.Bignum(1) 'копируем данные из одного класса чисел в другой (из первого в первое)
F.Clone 2, 1 'копируем в рамках одного класса число из первого во второе, т.е. число 2 = числу 1
'в рамках одного класса такое копирование на порядки быстрее
F.Root 3, 2 'вычисляем корень из второго числа в третье.
'логика всей арифметики в классах предполагает получение результата в первом параметре(левой части выражения),
'по аналогии с "=", т.е. число3 = кореньиз(2число)
Debug.Print F.Bignum(3) 'смотрим результат в третьем числе
'1.054092553389459777332964514810906177906518379775072275619168284264198146213079E+51
 
I.Help 'смотрим Help
End Sub

1С:
Код
F = Новый COMОбъект("BedvitCOM.BignumArithmeticDouble"); //Создаем массив больших чисел с плавающей точкой и арифметикой (класс)
F.SizeBitsSet(1,256); //задаем размер в битах для 1го числа с плавающей точкой
F.SetBignum( "11111",1); //присваиваем данные для 1го числа
F.Power(1,1,51561); //возводим в степень 51561 первое число и кладем его в первое же число.
f = F.Bignum(1); //кладем данные в переменную из первого числа
Сообщить(f); //смотрим

Версия 0.0.0.1 под x64 (x32 - пока не поддерживаю).
Прошу протестировать, написать, что хотелось бы видеть в финальной версии.
Реализована простенькая справка с интерфейсом (будет интерес - можно причесать красивее).
Help:
Скрытый текст

Ресурсы:
MPIR library, Edition 3.0.0 (freely distributable librarys)
http://mpir.org/
+ my code written in C / C ++

©2018, BedvitCOM v.0.0.0.1
License: Freely distributable library

Файлы не пролезли, потому на ресурсе здесь.
Изменено: bedvit - 26 Мар 2018 23:01:05
«Бритва Оккама» или «Принцип Калашникова»?
Зависает эксель при больших объемах данных.
 
Поставьте Excel x64. Он использует всю оперативную память.
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 32 След.