Перейти к публикации

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


Рекомендованные сообщения

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

Ссылка на сообщение
Поделиться на других сайтах


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

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

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

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, nikita_paul3 сказал:

и Ansysв

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

Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, Борман сказал:

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, nikita_paul3 сказал:

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

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

 

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

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

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

 

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

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

 

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, nikita_paul3 сказал:

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

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

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, nikita_paul3 сказал:

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
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:

 

Изменено пользователем ДОБРЯК
Ссылка на сообщение
Поделиться на других сайтах
13.01.2021 в 23:39, karachun сказал:

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

 

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

 

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

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

 

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

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

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


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

Ссылка на сообщение
Поделиться на других сайтах
13.01.2021 в 23:39, karachun сказал:

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

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

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

GZ arh_0001.jpg

Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, Maik812 сказал:

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

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

GZ arh_0001.jpg


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

 

Ссылка на сообщение
Поделиться на других сайтах
15.01.2021 в 21:08, nikita_paul3 сказал:

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

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

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

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

 

Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, ДОБРЯК сказал:

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

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

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

 

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

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

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, nikita_paul3 сказал:

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

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

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...