|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
#1 | |
Помогите улучшить код получения CRC32 IEEE для ИУЛ (Информационно удостоверяющего листа) для экспертизы, из файла на С++
Регистрация: 03.10.2009
Сообщений: 729
|
||
Просмотров: 6376
|
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Если вам не очень интересен код, а нужен просто инструмент для считывания кода CRC32 из файла.
1. Скачиваете с данной страницы файл "CRC32.zip" 2. Распаковываете его на диск C:\ 3. Запускаете файл "CRC32.reg". В открывшемся окне с названием "Редактор реестра" нажимаете "Да". В следующем окне "ОК" 4. Теперь при нажатии правой кнопкой на файле PDF, DOC, ZIP, или XML, вы увидете в меню новый пункт с названием CRC32. При нажатии на него выйдет окно терминала с кодом CRC32, а сам код копируется в буфер обмена. ВЫ можете данный код CRC32 вставить в ваш документ (скорее всего в Информационно-удостоверяющий лист) нажав CTRL+V, либо нажатием правой клопкой мыши -> "Вставить"
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Это надо тотальный командер ставить, или HashCheck. А кому то всё это не интересно. А у кого то устанавливать всё это нельзя, так как лицензии нужно с сисадмином согласовывать.
Кому надо щелкнуть по файлу правой кнопкой, выбрать CRC32, и потом вставить контрольную сумму в документ - вот такое абсолютно бесплатное решение. Код открыт - закладок нет. Не совсем понимаю почему Экспертизы таких решений не предлагают. Они же простейшие.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Код выложен в шапке. Можно скомпилировать самостоятельно (даже администратором организации). Других вариантов для windows кроме как компиляцию в "exe" не вижу.
Цитата:
HashCheck - Copyright. TotalCommander - вообще платный. Оба выполнены не отечественными компаниями, значит для бюджетных и государственных организаций не подойдёт.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
какая прелесть, кстати - в ИУЛ с MD5 перешли на CRC32)
----- добавлено через ~57 мин. ----- а если выделить несколько файлов - то в буфере останется CRC32 только для последнего файла) |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Если будет время, наверное допишу программу, что б создавала ИУЛ (или несколько ИУЛов для нескольких файлов)
__________________
///BIM мертв\\\ Последний раз редактировалось iliorik, 26.10.2023 в 16:13. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
и, кстати, можно использовать старый добрый драп-и-дроп, будет принимать любое количество файлов и без всяких административных прав. К примеру, на .Net это элементарно делается:
Код:
|
|||
![]() |
|
||||
СЦБ Регистрация: 09.03.2006
Сообщений: 89
|
Я себе для таких целей создал ИУЛ в Word. Полями сослался на свойства самого документа. Затем макросом на VBA выбираю файл PDF, макрос записывает в свойства размер файла, дату, CRC32. Поля подтягивают всё это сразу в ИУЛ.
То же самое есть и для ИУЛа в Excel |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
.Net не интересен. Нужно либо компилировать в файл все нужные dll, либо фрамеворки на компьютер пользователя ставить. Считаю для таких простейших решений .Net излишеством
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
Я как то писал подобное в виде аддона для ворда, для ГИПов, только не CRC32, а для md5... там простейший код. Все как хочется, по клику на файл и вставка в ворд, без всяких танцев с бубном. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
![]() ----- добавлено через ~13 мин. ----- Если, конечно, до сих пор не работаете в версиях Windows выпусков до 2003 года) |
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,704
|
Кажется мне, что в программе файл перед подсчетом crc полностью копируется в память.
Если это так, то при больших файлах могут быть тормоза, связанные с выделением памяти. Можно один раз выделить память на небольшой блок, туда читать частями файл и считать crc тоже частями. Это может быть существенно быстрее для больших файлов. |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Переписал код с учётом пожеланий nickname2019
Размер буфера устанавливается в переменной buffer_size Код:
__________________
///BIM мертв\\\ Последний раз редактировалось iliorik, 20.06.2024 в 11:27. Причина: 083 - добавил заполнением нулями начало строки |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Скоро сделаю на основе ИУЛ в .rtf формате. Всё из одной программы будет создаваться, без стороннего ПО
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Круто. Всё с кнопочками и как надо
Можешь код на с++ из класса DocProps взять. Он собирает нужные данные по файлу Хотя на с# некоторые моменты будет проще написать. Например дату и время изменения файла Код:
__________________
///BIM мертв\\\ Последний раз редактировалось iliorik, 21.06.2024 в 12:30. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Цитата:
И есть куда развиваться, т.к. имя файла, дата изменения и CRC32-IEEE - маловато =) Вкус приходит во время еды... У себя я сделал, что парсятся титульники, штампы всех листов внутри пдф-ки и на основе полученных данных формируются графы таблицы: шифр, наименования, характера работ, ФИО исполнителей (на картинке я фамилии руками заменил на ###) и все остальное... |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
----- добавлено через ~4 мин. ----- Цитата:
Пока что хочется какой то более универсальный инструмент разработать. Что бы правой кнопкой мышки на файл нажал, выбрал нужный пункт в контекстном меню, и рядом появился ИУЛ (при этом независимо, есть ли microsoft или нет)
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Но если нужно будет, при помощи с++ считать такое из файла значит тоже не сложно будет. Главное понять как эти метаданные сохранены в pdf
__________________
///BIM мертв\\\ Последний раз редактировалось iliorik, 21.06.2024 в 14:35. |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
По устройству PDF есть краткое руководство от авторов: https://www.adobe.com/technology/pdf...DFTutorial.pdf. Это если есть желание свой PDF-писатель с нуля сделать, чтобы ни от кого не зависеть.
Но скорее всего, есть готовые библиотеки для чтения/записи. Писать с нуля какой-нибудь код упаковки Deflate или zip - это совсем для мазохистов. Под шарп я использовал https://itextpdf.com/, (тут и тут) под плюсы не подскажу, надо гуглить. С датами у меня на прошлой работе техотдел всех тренировал, еще до того, как это стало государственным геморроем. Даты смотрели кто попало и где попало. Одним подавай в свойствах файла, другим внутри PDF. Были даже случаи, когда даты по-разному округлялись в разных программах из-за спорных микросекунд, и техотдел заставлял переделывать PDF, потому что "даты неправильные, тут одна минута написана, а у файла целых две". Очевидно, в программе придется сделать настройки на несколько экранов, что делать с датами - заменять, унифицировать, рандомизировать и т.д. по списку всех возможных идиотских предложений. |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Цитата:
Цитата:
Опять же, несколько раз просмотрел ГОСТ 2.051-2013. Про даты ни слова ни полей не нашёл. Описали бы какие даты имеются ввиду. Откуда эти даты вообще в ИУЛ пришли?
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Как и все в программировании. Легко написать программу, которая делает что-нибудь простое. Например, записывает PDF с ИУЛом. Потому что для этого надо реализовать 0.01% от всех возможностей формата. Но если надо прочитать файл, который записал кто-то еще, надо реализовать 100% формата. Программа, записывающая минимальный файл, пишется за день-другой. Программа, читающая произвольный файл - за 10-20 лет.
Я, когда с техотделом воевал, вручную парсил: в Far Manager открывал, и заменял теги ModifyDate, CreateDate, MetadataDate (примеры этих тегов по ссылке выше есть). Но внутри файла могут лежать пожатые объекты и хз что еще. Парсить упаковку из нескольких форматов сжатия в нуля из принципа - дурная затея. А без этого программа никак не даст гарантии, что она все исправила. Единственное легковесное решение - генерить ИУЛ; как писать тексты и рисовать линии, в учебнике показано. Но потом же туда надо будет фамилии вставлять, или сканы подписей - и пойдет история развития программы годы наматывать. |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Наверное что то попроще есть, в плане того что бы красивые линии и тексты делать в pdf, считывать метаданные pdf разделов проекта и смотреть на титульный лист.
__________________
///BIM мертв\\\ Последний раз редактировалось iliorik, 21.06.2024 в 17:59. |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Делать в pdf можно без подготовки, если нужно просто записать файл фиксированного формата с нуля. Там достаточно несколько строк подставить в шаблон:
Код:
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Вот поэтому я думаю, что без нейросетей не обойтись. Подключить OCR, и при помощи нейросетей, обучить извлекать из титулов и штампов всю нужную информацию.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Следующие темы будут называться:
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Согласен, так бы и было. Но это никому не интересно на данном форуме, поэтому таких тем не будет.
Тут только crc32 для ИУЛ думаю обсуждать. Когда напишу что то работающее по вытягиванию информации из pdf (если напишу, может надоест и брошу всё это), тогда выложу с новой темой. А потом увяжу две программы между собой, и будет счастье. Пока в части ИУЛ вижу только создание (или редактирование готовых) RTF документов по клику правой кнопкой мышки. Такая принципиальная концепция моей программы, минимум действий для определённого результата, при этом не должно быть привязок к стороннему ПО (типа Microsoft Word) Пока задача была кликнуть по файлу и потом через Ctrl+v вставить код CRC32 в нужное поле.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
даже если умудритесь написать программу, которая учитывает все организационную "рукожопость" многих проектных организаций - то они (организации) просто начнут еще больше "косячить") Никогда исправление ошибок за других не приводило к уменьшению количества ошибок...
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Мне вот даже интересно. Если я вижу ошибки, и что должно было быть, может ли нейросеть это тоже увидеть? Мы же как то видим, что что то не так..
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
не факт - "правильность" того или иного варианта решения вещь достаточно субъективная:
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Ну например, взглянув на титульный лист, мы сразу понимаем где название объекта, где название раздела, где фамилия исполнителя, и где наименование организации (я понимаю что это очень непростая процедура будет в плане нейросетей).
Результат конечно субъективный, но он не отличается от тысячи других субъективных результатов.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Я всё равно пойму где название объекта, а где название раздела. И даже фамилию от названия организации отличу.
А такой pdf с разделом документации я отправлю обратно, с вопросом, что это, и как по этому строить в РФ
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
вопрос - зачем все усложнять? Если проектные организации годами "клали болт" на внутреннюю организацию работ - значит, сейчас будут "пожинать" плоды своей лени и пофигизма, пытаясь сдать документацию по новым правилам. Кто придерживался хотя бы минимального порядка производства работ...
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Я стараюсь упростить. Клик правой мышки - результат.
Ну то сильно "клали болт", обычно идут лесом. Либо доводят до нормального результата, который хотя бы соответствует как то требованию ГОСТ 21.101. Но при этом всё равно титулы у всех немного разные. И просто угадать по координатам где какой текст, не очень то и просто.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,055
|
Надо не забыть, что в PDF может не быть текста. Могут быть буквы; по одно штучке; не по порядку. Могут быть линии - если шрифт был векторный. Надо проанализировать все линии на чертеже, и определить, не сложились ли они в буквы, а буквы - в слова. И вариант со сканированными чертежами не забыть, чтобы рукописные фамилии из штампа распознать, и чтоб без ошибок там.
Слишком сложно. Алиса, сделай иул! |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Хотя можно условие добавить, если в PDF нет текста, то "распознование пикселей". Всё таки быстрее будет работать Не поддерживаю Алису. Слишком ограниченное корпоративными стандартами решение.
__________________
///BIM мертв\\\ Последний раз редактировалось iliorik, 26.06.2024 в 09:37. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
как понимаю, составление ИУЛ листа занимает основное время - которое тратится на проектирование. Все остальное делается в пару "щелчков". Правда, как максимально автоматизировать процесс генерации проектной документации, не имея централизованного задания параметров проекта и его компонентов - слабо себе представляю. Видимо, тоже ИИ)
А если параметры проекта задаются централизовано - то зачем заниматься расшифровкой титульных листов для генерации ИУЛ... |
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Цитата:
Вначале догадались в архиве WinRAR посмотреть, но переписывать вручную - это время, и могут быть ошибки. Потом я сделал подсчёт CRC, но опять же занимало время на выделение, копирование, вставку (следующий этап был, автоматическое копирование в буфер, и вставка из него Ctrl+V) Сейчас есть несколько ИУЛ в rtf, в которых автоматически заполняются поля: CRC, дата, время (Остальные поля заполнены, файл автоматически выбирается по названию файла) И если раньше загрузка в экспертизу занимала какое то время, то теперь это делается легко и моментально. Такие мелочи упрощают жизнь проектировщику, и оставляют больше времени и умственных сил на само проектирование, а не на заполнение бланков.
__________________
///BIM мертв\\\ |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: 21.06.2024
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 03.10.2009
Сообщений: 729
|
Offtop: Это просто идея, которая возникла в процессе разработки программы. Пока такого решения нет, делаем так, как получается, при этом быстро и эффективно.
Ну а когда я сделаю распознавание, она же мне не только для ИУЛ пригодится, а например для заполнения полей pdf файла всех проектов которые у меня есть (Название, Автор и т д.). Очень удобно будет искать и сортировать по заполненным полям файлы на диске.
__________________
///BIM мертв\\\ |
|||
![]() |