Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
.NET 4.x

Сохранять текст внутри исполняемого файла

25.02.2015, 14:47. Показов 2145. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Имеется программа с определённым текстом, сейчас текст хранится в исходном коде, есть необходимость сделать его редактируемым и сохраняемым, но есть ограничения: сохранённый текст должен передаваться с программой, и не должно быть никаких лишних файлов, только исполняемый файл. Никогда такого не встречал, поэтому даже представления не имею как это сделать. Есть одна идея: сделать файл-структуру, хранящий в себе программу и текстовый файл, при запуске этот файл запускает внутреннюю программу и она работает с внутренним файлом, но как это сделать тоже не знаю. Может кто подскажет какие идеи?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.02.2015, 14:47
Ответы с готовыми решениями:

Как получить адресс исполняемого файла?
Собственно необходимо скопировать файл самой программы в нужную папку, но чтобы это осуществить необходимо знать путь и имя файла...

Получить имя исполняемого файла текущего приложения
К примеру я скомпилировал программу с названием myprogram.exe, а тот человек который скачал эту программу переименовал в pr.exe, нужно в...

Получить имя исполняемого файла своего приложения
Хочу сделать автоспуск, но тут подумалось что пользователь может переименовать программу, как получить её имя?

10
1 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 27
25.02.2015, 14:56
А для чего такое вообще нужно? Может быть использовать реестр? Туда вполне можно записать текст.
Не уверен, что исполняемый файл вообще может сам себя менять, разве что через дополнительный поток.
0
 Аватар для dayzfod
16 / 16 / 11
Регистрация: 24.02.2015
Сообщений: 75
25.02.2015, 15:00
Эмм... Стесняюсь спросить. А Для чего вам файл внутри файла, если есть исходник? Ftp или облако не?
0
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
25.02.2015, 15:09  [ТС]
Реестр, системные и пользовательские папки для хранения текстового файла не вариант, т.к. программа должна быть портативной, и главное условие - передаваться должна одним файлом.

Добавлено через 2 минуты
dayzfod, Для того что бы текст можно было менять во время использования приложения.

Добавлено через 5 минут
dayzfod, Ftp и облако тоже не пойдут, т.к. не понятно будет какой текст какой копии программы.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
25.02.2015, 15:23
Цитата Сообщение от Амадей Посмотреть сообщение
условие - передаваться должна одним файлом
Вы можете использовать виртуализаторы (типа Spoon Studio). Но я бы не советовал.
Если нужно распространять программу одним файлом - пусть исходный текст хранится в ресурсах программы, а при первом запуске, прогорамма делает копию в папку данных пользователя(в useName/AppData например) и туда же скидывает изменения.
1
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
25.02.2015, 15:30  [ТС]
Storm23,
Цитата Сообщение от Амадей Посмотреть сообщение
сохранённый текст должен передаваться с программой
Добавлено через 3 минуты
Можно ли вообще хранить в exe редактируемую информацию? Есть вариант с копированием исполняемого файла, редактированием копии, и замены исходного файла копией, замену можно сделать системными средствами после закрытия программы - создать задачу для windows.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
25.02.2015, 15:53
Цитата Сообщение от Амадей Посмотреть сообщение
Можно ли вообще хранить в exe редактируемую информацию?
Ну теоретически можно редактировать ресурсы exe файла. Но это идет вразрез с безопасностью и крайне не рекомендуется.
0
1 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 27
25.02.2015, 16:22
Цитата Сообщение от Амадей Посмотреть сообщение
Есть вариант с копированием исполняемого файла, редактированием копии, и замены исходного файла копией, замену можно сделать системными средствами после закрытия программы - создать задачу для windows.
Задачу делать не обязатель, достаточно создать второй поток (не background) и закрыть приложение. Такой вариант можно сделать, нужно только определиться со структурой exe файла. Думаю в общем виде это нужно сделать следующим образом: 1) ссылка на начало кода 2) длина текста в байтах 3) сам текст 4) код exe файла. А дальше уже при изменение текста парсить данные файла и перезаписывать. Текст при желании можно закодировать.

Не очень понятно, для чего нужно хранить и редактировать текст внутри исполняемого файла и почему обязательно передача в виде одного файла. Можно заархивировать папку, и будет один файл. Если же нужно создать защиту для приложения, то есть другие способы.
1
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
25.02.2015, 16:34  [ТС]
Завернин, Это всё нужно чисто из эстетических соображений, текст теряет смысл вне приложения, да и само приложение потеряет смысл если текст легко прочитать без него.
Как я понял из всех ответов сделать такой механизм будет довольно сложно, с учетом того, что само приложение достаточно легкое, рентабельность ввода редактируемого текста очень мала, пожалуй придётся отказаться от этого.
0
1 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 27
25.02.2015, 17:12
Цитата Сообщение от Амадей Посмотреть сообщение
само приложение потеряет смысл если текст легко прочитать без него.
Может быть такое приложение тогда вообще не нужно?=)

Если нужно сделать текст нечитаемым вне приложения, то это очень просто посредством шифрования. Если криптостойкость некритична, можно использовать простейшее XOR шифрование. Тогда текст можно хранить в отдельном файле, например в папке приложения, либо посредством реестра, либо иными средствами. При этом текст будет нечитаемым без приложения.

Дизайн хранения изменяемых данных в exe файле, насколько я знаю, не используется большинством программ. Имело бы смысл разве что для защиты приложения. Но было бы интересно посмотреть на реализацию.
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
25.02.2015, 22:51
Амадей, если я правильно понял, то включил файл в ресурсы и уже работать с ним из них.

Добавлено через 4 минуты
хотя такой вариант не подойдет, если его надо редактировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2015, 22:51
Помогаю со студенческими работами здесь

Как назначить иконку для исполняемого файла программы
Microsoft Visual C# 2008 Express Edition как сделать,чтобы ехе файл выглядел как красивая иконка а не стандартно. Как изменить имя формы,...

Как программно поменять иконку исполняемого файла приложения?
например у меня есть кнопка загрузить иконку , человек загружает ее , и создает билд , и надо чтобы на билде была иконка которую указал...

Как из richtextbox сохранять отформатированный текст в поле БД (используется Access)?
Подскажите пожалуйста, как из richtextbox сохранять отформатированный текст в поле БД (используется Access) и затем как извлечь его оттуда...

Получить директорию исполняемого файла
Всем привет! Слепил приложение. В процессе создания и дебага проблем не было. Для того что бы получить директорию приложения я использовал...

Получить путь исполняемого файла
Поиск выдал такие результаты: Assembly.GetExecutingAssembly().Location Assembly.GetEntryAssembly().Location ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru