Jump to content

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


Recommended Posts

nikita_paul3

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

Link to post
Share on other sites


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

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

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

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

и Ansysв

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

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

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

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

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

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

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

Link to post
Share on other sites
karachun
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
karachun
11 минут назад, ДОБРЯК сказал:

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

 

Link to post
Share on other sites
Maik812
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
Maik812
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.



  • Сообщения

    • Forest_Man
      Явно отсюда. Разберитесь с циклом - что за К, для чего, и зачем ему своя подача!? Если она там не нужна, то просто убрать с кода. Типа так {' K' depth ' D' down_step}
    • ANT0N1DZE
      Я предполагал между людьми, но мериться у кого ИИ круче тоже можно
    • Plumber
      Вот как правительство страны заботится о своих гражданах   
    • ДОБРЯК
      Циклическая симметрия не моделируется через обычную симметрию.  С какой целью интересуетесь? Есть для этого тема там и сформулируйте свой вопрос. Попробуйте прям) на грань наложить эти условия симметрии...
    • Моль
      Люди помогите разобраться что здесь не так? Откуда берется вторая буква F  в цикле нарезания резьбы  G76 X7.58 Z-8.8 F1. K0.5 D0.12 F0.0394 A0 Q0 в солиде ставил шаг 1 первая буква F  правильная а вот откуда вторая буква F понять вобще не могу           gcode = 76          ;     {nb 'G' gcode ' P010060' ' Q' minimum_step_down:for3  }             {nb 'G' gcode ' X' last_pos_x : xpos_f ' Z' last_pos_z ' F' feed }             if taper_angle <> 0        ;         {' I' taper_angle}             endif             {' K' depth ' D' down_step ' F' lead : for5}             {' A' nTool_Nose_Angle:for6 ' Q' nThread_Start_Angle:for6}         else             gcode = 76             {nb 'G' gcode ' X' last_pos_x : xpos_f ' Z' last_pos_z }             if taper_angle <> 0                 {' I' taper_angle, ' '}             endif             {' K' depth ' D' depth ' F' lead : for5} ;            {' A' nTool_Nose_Angle:for6 ' Q' nThread_Start_Angle:for6}         endif ;        nThread_Start_Angle = nThread_Start_Angle + nthread_dev_angle         i = i - 1         gcode = 0         if i gt 0             {nb,['G'gcode] ' X'xpos }             {nb,['G'gcode] ' Z'zpos }         endif  что здесь нужно изменить? 
    • Jesse
      ну да, в общем одинаковые, такие же как в предпоследнем сообщении на прошлой странице кому интресно..)
    • Jesse
      спс, так и сделал)
    • Jesse
      это итак простая модель.     это зщадачу можно смоделировать  осевой симметрией, как частный случай циклической   пишу на бумажке: перемещения и повороты для двух противоп-х кромок в цилиндр-й СК равны. Покажите теперь как вы решаете эту задачу в вашей програмке..)
    • karachun
      лучше жми кнопку жалоба, так до модераторов быстрее дойдет (я вот, на такие темы исправно жалуюсь, так исправно что в этом разделе даже баннер красный повесили)
    • Arteg
      Типа заставить по сети сражаться свой Ansys с Ansys соперника?)   
×
×
  • Create New...