Jump to content

Как собрать файлы с разными расширениями и форматами в один файл, как в Star CCM и Ansys?


nikita_paul3

Recommended Posts

Здравствуйте. Помогите, пожалуйста, разобраться в вопросе.
У меня есть приложение (.exe), которое при запуске создает несколько файлов с разными расширениями и разными форматами данных. (.dll,. yaml  .mesh и т. д.)
Подскажите пожалуйста, как сделать так, чтобы все файлы содержались в ОДНОМ файле? В продуктах Star CCM + и Ansysв всё содержится в одном файле. Я хочу сделать также. Можете предложить варианты?

Link to post
Share on other sites


UnPinned posts
1 минуту назад, Борман сказал:

В zip архив затолкай.

А что делать, если все эти файлы будут весить более 30 гб?
Скорость и время для очень важны. Он долго будет архивировать

Link to post
Share on other sites
1 час назад, nikita_paul3 сказал:

и Ansysв

Обычно проект в ансисе, в воркбенче, это целая отдельная папка с ворохом подпапок и с запутанной структурой.

Link to post
Share on other sites
21 минуту назад, Борман сказал:

В zip архив без сжатия значит.

Я пробовал, всё равно архивирует долго

16 минут назад, karachun сказал:

Обычно проект в ансисе, в воркбенче, это целая отдельная папка с ворохом подпапок и с запутанной структурой.

А если в ССМ? Как сделать как у них? Или хотя бы наподобие?

Link to post
Share on other sites
14 минут назад, nikita_paul3 сказал:

Я пробовал, всё равно архивирует долго

Ну а какой еще есть выбор? Если нужно собрать несколько файлов в один то нужен архив. Вон, в играх все ресурсы запаковывают от любопытных глаз и ничего. Звуки, текстуры и модели (которые в современных играх уже перевалили за сотню гигабайт суммарного веса) грузятся мгновенно, так что пользователь не испытывает дискомфорта.

 

13 минут назад, nikita_paul3 сказал:

А если в ССМ? Как сделать как у них? Или хотя бы наподобие?

А кто же вам расскажет. Здесь разработчиков стара нет и вряд-ли кто-то подробно копался в его файлах.

 

Вообще, может вам на форум программистов обратится? Может там вам подскажут.

Мы же работаем в CAE а не создаем CAE. Вот если бы вам балку какую посчитать или течение жидкости в трубе то другое дело, а так...

 

Хотя может @ДОБРЯК что-то подскажет.

@nikita_paul3 Вон, в Линухе же есть команда tar которая сцепляет файлы в один архив без сжатия.

Тот же Ansys Fluent раньше работал с архивами .gz и особых тормозов не наблюдалось. А сейчас они завели собственный архивный формат и его тоже можно использовать как опцию по умолчанию и не испытывать проблем со скоростью.

Link to post
Share on other sites
ДОБРЯК
2 часа назад, nikita_paul3 сказал:

Подскажите пожалуйста, как сделать так, чтобы все файлы содержались в ОДНОМ файле?

Нужно всю информацию писать в один файл.

  • Нравится 1
Link to post
Share on other sites
2 часа назад, nikita_paul3 сказал:

Я пробовал, всё равно архивирует долго

Тотал командер выбирай архивы или типа архивов там моря плагинов архиваторных... в том числе tar,img  всякие без сжатия

НО я скажу что я измерял передачу на носитель и зип выигрывал при сжатии так как запись на носитель дольше чем сжатие.. размер меньше и по этому быстрей пишется..

Link to post
Share on other sites
ДОБРЯК
5 часов назад, karachun сказал:
сов назад, ДОБРЯК сказал:

Нужно всю информацию писать в один файл.

Проблема такая.

Цитата

long lseek(int handle, long offset, int origin)

Прототип: 
Описание: 

Функция lseek() является частью UNIX-подобной системы ввода/вывода и не определена в стан­дарте ANSI С.

Функция lseek() устанавливает указатель положения в файле, указанном дескриптором handle, в положение, указанное аргументами offset и origin.

Действия lseek() зависят от значений аргументов origin и offset. Аргумент origin может прини­мать значения 0, 1 или 2. В следующей таблице показано, как интерпретируется смещение offset для каждого значения origin:

Origin Результат обращения к lseek()
0 Смещение отсчитывается от начала файла
1 Смещение отсчитывается от текущей позиции
2 Смещение отсчитывается от конца файла

Если смещение от начала файла задать 100 Мб и записать всего 1 Б то размер файла будет = 100 Мб. Такая файловая система в Виндах. Это наследие ДОСа.

В UNIX это занимает ссылку + 1 б.

Нужно программисту самому провязывать файл.

Поэтому и режут один файл на много-много маленьких, потом собирают в один.:biggrin:

 

Edited by ДОБРЯК
  • Нравится 1
Link to post
Share on other sites
nikita_paul3
13.01.2021 в 23:39, karachun сказал:

Ну а какой еще есть выбор? Если нужно собрать несколько файлов в один то нужен архив. Вон, в играх все ресурсы запаковывают от любопытных глаз и ничего. Звуки, текстуры и модели (которые в современных играх уже перевалили за сотню гигабайт суммарного веса) грузятся мгновенно, так что пользователь не испытывает дискомфорта.

 

А кто же вам расскажет. Здесь разработчиков стара нет и вряд-ли кто-то подробно копался в его файлах.

 

Вообще, может вам на форум программистов обратится? Может там вам подскажут.

Мы же работаем в CAE а не создаем CAE. Вот если бы вам балку какую посчитать или течение жидкости в трубе то другое дело, а так...

 

Хотя может @ДОБРЯК что-то подскажет.

@nikita_paul3 Вон, в Линухе же есть команда tar которая сцепляет файлы в один архив без сжатия.

Тот же Ansys Fluent раньше работал с архивами .gz и особых тормозов не наблюдалось. А сейчас они завели собственный архивный формат и его тоже можно использовать как опцию по умолчанию и не испытывать проблем со скоростью.


Хорошо, буду пробовать, а, может, подскажите популярные форумы?
а то, мне кажется я на всех уже спрашивал

Link to post
Share on other sites
13.01.2021 в 23:39, karachun сказал:

Тот же Ansys Fluent раньше работал с архивами .gz и особых тормозов не наблюдалось.

Этот форум самый топовый :) 

А чем тебе gz не нравится архив ?

GZ arh_0001.jpg

Link to post
Share on other sites
nikita_paul3
29 минут назад, Maik812 сказал:

Этот форум самый топовый :) 

А чем тебе gz не нравится архив ?

GZ arh_0001.jpg


Д не, можно. Я вот пытаюсь что-то сделать.
У меня просто проект написан на С++ и мне нужно, чтобы сама программа заархивировала эти файлы.
И еще желательно со своим расширением, например project.123

 

Link to post
Share on other sites
ДОБРЯК
15.01.2021 в 21:08, nikita_paul3 сказал:

У меня просто проект написан на С++ и мне нужно, чтобы сама программа заархивировала эти файлы.

Если вам нужно собрать все файлы в один файл, то эта функция пишется максимум за 1 час. С помощью функций read и write.

Если нужно архивировать, то найдите в Интернете исходные коды zip архиватора.

Но для 30 Гб это будет долго.

 

Link to post
Share on other sites
nikita_paul3
12 минут назад, ДОБРЯК сказал:

Если вам нужно собрать все файлы в один файл, то эта функция пишется максимум за 1 час. С помощью функций read и write.

Если нужно архивировать, то найдите в Интернете исходные коды zip архиватора.

Но для 30 Гб это будет долго.

 

А что вы посоветуете, если мне надо заархивировать и потом работать с информацией в этих файлах?
тоесть я хочу потом не разархивировать обратно, а как-нибудь открыть для чтения и работать с файлами.

По поводу записи в один файл-понял, попробую.

Link to post
Share on other sites
ДОБРЯК
5 часов назад, nikita_paul3 сказал:

я хочу потом не разархивировать обратно, а как-нибудь открыть для чтения и работать с файлами.

Не получится.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • GS
      ==== ...."легкие деньги" юных "триде-бизнесменов"....))
    • Борис_нск
      Да, все работает. Проблема была в точности исполнения модели. Перечертил заново и заработало.  
    • раздватри
      Для дела, повторим расчет пневматических пуль, добавив еще две для полной картинки, чтобы не возникало вопросов у пневманутых стрелков по остроте и тупизне объекта исследования. 1. Меняем концепцию расчетной сетки, удалив по одному внутреннему блоку для каждой пули, для сгущения расчетной сетки. 2. Увеличиваем число расчетных ячеек с 5 млн до 21 млн. 3. Уменьшаем шаг расчета в два раза, не меняя шаг записи кадров для анимации. 4. Оставляем время остановки расчета без изменения.      
    • Stepanov
      Задача приобретает нормальные рабочие очертания. Нужен график напорной характеристики вашего "ветродуя", можно мне в личку.
    • ДОБРЯК
      Вы уже столько наговорили в этой теме.  
    • Мастеровой
      И куда выменянные  литра  два  технического  девались ?  На фотопластинки  астротелескопов  в Бюраканской обсерватории ? Или в Пулковской? Интересно , а что в связи с эффектом  Доплера  увидит  оптический  телескоп ,  установленный на корабле , летящем со скоростью света ? Чёрную энергию ???
    • Maik812
      А можно ли макрос превратиь в ЕХЕ с командной строкой и работать через нее ?
    • Магомед
      Внутри трубная диагностика, есть такое "дефектоскопия". Малым радиусом нет участка все максимально ровно и угол не превышает 45ти градусов. У нас такое дело, называется рационализаторская работа. И в этой работе был предложен такой вариант, а я как ответственный за рационализаторские работы должен допустить данную работу к работе на газопроводе. Штука очень полезная и эффективная, но для подписей и вознаграждения необходимо рассчитать время полной продувки. Юредически туда никого из тех кто делал расчёт приписываться не будет, так как нет юридического договора. Цена ошибки практически равна нулю. Нам просто интересен факт того на сколько будет велика разница между  расчётом и практическим применением. Для 100метров полная продувка происходит за 400секунд. Один тут сделал расчёт у него вышло около 480секунд. Для 100м почти одинаково. А теперь хочется узнать на 1000м.но так как цены реально очень большие, скорее всего такие работы и стоят этих сумм, поэтому уже пропало желание делать расчёт. Вознаграждение за работу меньше чем цена расчёта и поэтому легче его не делать чем делать 
    • Ветерок
      Во-первых, надо разделить пароход на характерные участки, которые будут строиться отдельно. Здесь это: нос от миделя борт и днище в корму от миделя выкружка под гребные винты транец фальшборт. Сначала, как и говорил, строятся линии штевней. Лучше сверяться с Плазовой. Форштевень - прямая и дуга. Ахтершевень - две прямые. Потом мидель. На миделе две прямые и дуга на скуле. Не надо рисовать это сплайном. Потом строятся две проекции линии борта и по ним получается трехмерная линия борта. Каждая проекция строится не по набору точек, а как плавный сплайн (или дуга). Где прямая - там прямая. Потом можно обвести шпангоуты и расставить их на свои места в пространстве. В нос от миделя строится линия плоского борта.   На этом стоп.   Если Вам нужно точно повторить обводы готового судна. Тогда берете Плазовую - и вперед с песнями. Тут уже не до творчества.
    • Mizaz
×
×
  • Create New...