как написать свою dll?
В Visual Studio
С какими языками ты знаком в степени, достаточной, чтобы решить поставленную задачу (ну про файлы там)? На C++ в любом случае не рекомендовал бы писать COM-компонент, надо будет как минимум книгу прочитать, иначе заебесся. Может .NET? Других путей, я кстати, не знаю (т.е. не представляю что там и как).
На C++ в любом случае не рекомендовал бы писать COM-компонентАшотакоэ?
Ну на чистом ++, конечно, не получится, еще idl нужен, как минимум...
Да ну, заеб это. Ну и блин, idl, вот я ATL юзал как-то, вот он еще помогает.
прогал на плюсах но давно. примерно представляю как обрабатывать текстовые файлы. как сделать dll с юзабельным com в душе не ипу. я прогал на билдере, думаю должен быть какойто готовый мастер - руками прописывать ессно я не смогу. или может в дельфи готовый мастер есть?
В любом случае имхо, проще всего сделать в C++ Builder или Delphi через wizard
вчера взял стандартный парсер конфы 1с и декомпилировал его IDA pro - в итоге получился читый ассемблер. Не думаю что писалось именно на нем - есть ли какиелибо способы взять чужжую длл или ехе и декомпилировать его именно в с++ или в то на чем писалось?
омг
Че там, как написать чтобы dll на 1с?
Я так писал одну обработку для 1С, как раз работающую с файлами. Javascript простой язык по сравнению с С++ и методы работы с файлами ботаются с нуля за час по примерам из интернета
Спасибо! Надо просто гдето надрать подобных кодов и грамотно их скомпилировать. Может у кого есть примеры готовые длл и работы с деревом файлов? разбор файлов как текста?
ну вот по javascript:
кстати забыл спросить о главном: а скорость работы со строками в ж-скрипт будет ли вобще выше чем в 1с? замена слов по шаблону из 5тыщ слов в дереве 5тыщ файлов в 1с 8.1 происходит за время порядка 4 дней - это меня дико не устраивает. основное торможение происходит на процедурах работы со строками типа найти(строкаПоиска, ЧтоИщем стрзаменить(строкаПоиска, Что, НаЧто); ну и тому подобными. Понятно что на плюсах это могло бы просто летать, хотя конечно такие процедуры пришлось бы писать самому, а как обстоит дело с ж.скрипт? а то может это такой же тормоз как и 1с?
Спросите нарика, а седом он захуярить не пробовал?
опиши-ка алгоритм поподробнее. Сколько раз ты эти функции для каждого файла вызываешь?
сед 'з/что/начто/гс'
Сколько раз ты эти функции для каждого файла вызываешь?пробовал написать алгоритм по разному:
1 внешняя переборка - фаловая (это более правильно ибо во втором варианте каждый файл читается 5000 раз)
2 внешняя переборка - по таблице замен
итог почти одинаков ибо 95% вычислительной мощи пожирается куском вот такого кода:
ТекСтрокаФайла = ВРЕГ(ТекстФайл.ПолучитьСтроку(СчетчикСтрок;
ПозицияВхождения = Найти(ТекСтрокаФайла,слово);
Если ПозицияВхождения <> 0 Тогда
скобка1 = найти(стрзаменить(прав(ТекСтрокаФайла,стрдлина(ТекСтрокаФайла)-ПозицияВхождения+1" ","""(");
Если скобка1 = стрдлина(слово)+1 Тогда
ТекстФайл.удалитьстроку(СчетчикСтрок);
ТекстФайл.ВставитьСтроку(СчетчикСтрок, стрзаменить(ТекСтрокаФайла,слово,замена) );
сообщить("заменили: "+ слово+ " на "+ замена);
то есть по сути ничего сложного но просто 1с ОЧЕНЬ медленно работает со строками
то есть по сути ничего сложного но просто 1с ОЧЕНЬ медленно работает со строкамиНу если ты каждую из 5000 строк отдельно ищешь, то у тебя на любом языке в принципе медленно будет. Конечно по разным платформам будет варьироваться, но будет медленно.
Хотя... 5000(файлов)*5000(строк)*100(строк в файле)*40(длина строки) / 10^9 (гигагерц) = 100 секунд. Оценка очень примерная, но порядок примерно такой должен быть, наверное.
Ну если ты каждую из 5000 строк отдельно ищешь, то у тебя на любом языке в принципе медленно будет.Алгоритм, чтобы искать все одновременно, называется алгоритмом Ахо-Корасика. Это я так, на всякий случай.
Или Рабина-Карпа (у меня вот ахо-корасик сильно много памяти ел, правда у меня было 3 ляма строк)
а потом реализацию на 1с запостить в вики в качестве примера реализации
Имхо проще написать это на чём угодно (c/c++/c#/python) не заворачивая в com, а тупо вызывая из кода 1C как внешний процесс(КомандаСистемы или ЗапуститьПриложение. Правда колбека не будет в 1С по завершении.
Оставить комментарий
psvpolo
в какой среде можно наиболее быстро создать свою длл для работы с большим числом файлов и была бы возможность юзать методы по COM из 1с?