|
|
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
Привет всем. У меня есть простенькая программа, код которой помещается всего в одном файле. Программа, непрерывно работая, раз в единицу времени пересчитывает несколько чисел, которые я сохраняю в файл. Чтобы не плодить файлы, я решил сохранять числа в тот же файл, где записан код программы. Файл с программой вызывается из стороннего приложения, в написании которого я участия не принимал. Язык - lua. Вроде работает так, как и ожидалось, но всё равно задам несколько вопросов. 1. Насколько это корректно и могут ли возникнуть какие-либо сложности? 2. Зависит ли здесь что-то от языка программирования и от того, компилируемый/интерпретируемый ли он? 3. Можно ли ещё каким-то способом сохранять еременные, не создавая лишних файлов? Сам я так понял, что, скомпилировав программу, можно делать с файлом-исходником что угодно (до следующего запуска), поскольку скомпилированный код уже попал, куда надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 01:17 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
С lua не знаком вообще. Если язык компелируемый то работает экзешник а исходник можно читать как обычный текстовой фаил. при интерпритации всё иначе. А что такого криминального в том чтоб создать отдельный файлик для храненпя значений. Имхо так правельней! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 02:39 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
Наверное, правильнее, но не хочу множить файлы. викиКак и многие интерпретируемые языки программирования, реализация Lua имеет отдельно компилятор с исходного языка в исполняемый байт-код и виртуальную машину для исполнения сгенерированного байт-кода. Причём байт-код — это не команды стековой машины, а команды некоего виртуального процессора с несколькими регистрами, что повышает эффективность исполнения. В стандартной виртуальной машине Lua используется распределение памяти со сборкой мусора (аналогично Java или .NET). Lua использует единый строковый пул, что позволяет снизить расходы памяти на хранение строк. Для задач, критичных по времени, имеется JIT-компилятор Lua — LuaJIT[7]. Также разработан компилятор llvm-lua[8], генерирующий код для виртуальной машины LLVM, предоставляющей возможность последующей компиляции в очень эффективный машинный код для процессоров различной архитектуры. Это как понимать? Скомпилировавшийся код уже не зависит от текстового исходника или всё-таки зависит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 04:44 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
после компеляции не конечно. Работает исполняемый фаил(в винде .exe) А если будите заново компелировать(именно компелировать а не запускать)тогда изменения будут учитываться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 05:29 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
После компиляции -- это понятно. А если интерпретатор стоИт -- то тоже во время выполнения изменения текстового файла не повлияют на работу программы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 05:40 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
code_cpp, В принципе тоже не должен! Конечео если аджаесом пользуетесь чтото может быть смотря что менять! Но ещё раз повторюсь это изврат!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 09:17 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
code_cppА если интерпретатор стоИт -- то тоже во время выполнения изменения текстового файла не повлияют на работу программы? Как повезёт. Каждый интерпретатор поступает по-своему. Один читает каждую строку после выполнения предыдущей либо (например, так выполняются BAT/CMD скрипты) перечитывают файл, если считанное содержимое утрачено/повреждено -в таком случае изменение может привести к непредсказуемым последствиям, если смещение строки в файле изменилось. Другой читает сразу весь файл и не обращается к нему повторно в процессе выполнения (кажется, именно так обрабатываются VBS/JS/PS скрипты). В общем, надо тестить на конкретном интерпртаторе (включая конкретную версию! сомневаюсь, что этот момент документирован). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:15 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
code_cpp, я не рискнула бы исходником, чтобы туда что то в темную записать например --запустили выполнение --исходник открыли на запись куда то в начало --считали исходник в память --начало вернули на диск -------------ERROR--при выполнении//отключение электричества/зависание/котяра улегся на клавиатуру.....---- Вы можете гарантировать , что допишите итог расчета и хвост проги ==== может у вас другая схема и вы предусмотрите всех тараканов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 11:07 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
AreostarА если будите заново компелировать(именно компелировать а не запускать)тогда изменения будут учитываться Сейчас компилятору умные пошли. Даже MS C умудряется компилить исходники на "лету" не перезапуская программу в дебаге. Java аналогично. Если не меняется сигнатура методов и описание классов. Х.з. как линкуют и восстанавливают предыдущее состояние программы.... как-то умудряются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 14:50 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
code_cppесть простенькая программа, код которой помещается всего в одном файле. Программа, непрерывно работая, раз в единицу времени пересчитывает несколько чисел, которые я сохраняю в файл. Чтобы не плодить файлы, я решил сохранять числа в тот же файл , где записан код программы. Надеюсь ты понимаешь насколько навен и инфантилен подобный позыв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 15:12 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
code_cppЯзык - lua. В соответствии с его синтаксисом ты вполне можешь позволить себе добавлять свои данные в конец файла (не изменяя его предыдущего содержимого - io.open("MyProg.lua","a+")), оформляя их как комментарий (первые три символа - два тире и пробел, "-- "). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 15:44 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
code_cppУ меня есть простенькая программа, код которой помещается всего в одном файле. Программа, непрерывно работая, раз в единицу времени пересчитывает несколько чисел, которые я сохраняю в файл. Чтобы не плодить файлы, я решил сохранять числа в тот же файл, где записан код программы. Уволить без выходного пособия. code_cpp1. Насколько это корректно и могут ли возникнуть какие-либо сложности?Совершенно некорректно. Если у тебя вдруг случится сбой и куски программы не запишутся - ты потеряешь этот исходник. Если твой коллега решит подправить исходник программы а твоя супер-система не узнает что там есть исправления - потеряешь исходник программы. code_cpp2. Зависит ли здесь что-то от языка программирования и от того, компилируемый/интерпретируемый ли он?Нет. Это зависит от общей организации процесса и разумности исполнителей и начальства. code_cpp3. Можно ли ещё каким-то способом сохранять еременные, не создавая лишних файлов?Да. Можно пересоздавать файл данных. Можно хранить цифры в базе. Можно хранить каждый набор цифр в новом файле, а старые удалять или переносить в архив. code_cppСам я так понял, что, скомпилировав программу, можно делать с файлом-исходником что угодно (до следующего запуска), поскольку скомпилированный код уже попал, куда надо.Нет. Ты понял не правильно. Читать учебники по компиляторам, интерпретаторам и JIT-компиляторам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 17:49 |
|
||
|
Можно ли редактировать файл исходника программы в работе самой программы?
|
|||
|---|---|---|---|
|
#18+
White Owlcode_cppУ меня есть простенькая программа, код которой помещается всего в одном файле. Программа, непрерывно работая, раз в единицу времени пересчитывает несколько чисел, которые я сохраняю в файл. Чтобы не плодить файлы, я решил сохранять числа в тот же файл, где записан код программы. Уволить без выходного пособия. +1 code_cpp Чтобы не плодить файлы А цель? Файловая система на то и создана чтоб их плодить В реестр можешь писать, если твой феншуй не позволяет "плодить файлы" Но ИМХО твоя затея от лукавого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2015, 21:08 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38985343&tid=1340990]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 359ms |

| 0 / 0 |
