Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
9 / 8 / 2
Регистрация: 27.05.2019
Сообщений: 115

Программа должна запомнить, что что-то уже делала

17.06.2019, 20:27. Показов 2616. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не знаю, возможно это, или нет, но можно как-то сделать, чтобы программа сделала что-то один раз вообще за своё существование? Например, программа включается, приветствуется, и начинает своё функционирование. А потом мы её выключаем/перезапускаем, включаем заново, и она просто функционирует, без приветствия, а то каждый раз когда её включаешь, пользователь знает, как её зовут, и т.д., начинает надоедать
P.S. Предположу, тут нужно использовать создание файла на ПК, чтобы прога могла запомнить, что она что-то уже делала, и при след. запуске уже этого не делала?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2019, 20:27
Ответы с готовыми решениями:

Пишет что х не является переменной. Что я с ним только не делала
-3x-2y+7z=-10, 2x+15y-4z=4, -17x-11y-16z=-6; если кому то не сложно помогите

подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать
Вывод В выходной файл выведите одно число - сколько ударов сделали часы за этот отрезок времени.

Программа не выполняет то что должна
помогите разобраться... программа не делает что должна ((( #include <stdio.h> #include <stdlib.h> int main(void) { FILE *f,...

20
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
17.06.2019, 21:29
Vladks, самый простой вариант, конечно, записать что-то в файл. При запуске читать его и от этого уже плясать.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
18.06.2019, 06:36
Писать в файл советую json, так не нужно будет думать над способом хранения данных.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
18.06.2019, 10:57
Цитата Сообщение от Vladks Посмотреть сообщение
Не знаю, возможно это, или нет, но можно как-то сделать, чтобы программа сделала что-то один раз вообще за своё существование?
Для этого надо, чтобы программа после запуска вырубала все электростанции мира. Тогда однократный запуск гарантирован.
Ну или хотя бы стирала себя.

В каждой шутке есть небольшая доля шутки, а всё остальное - правда. Подумайте для начала наш вашим требованием в случае запуска проги на разных компах. И, к примеру, одним пользователем, которого таки да, желательно не приветствовать дважды.
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
18.06.2019, 13:57
Лучший ответ Сообщение было отмечено Vladks как решение

Решение

Vladks, ну как то типа так. при первом запуске программа проверяет наличие файла-флага и если такого нет то приветствует пользователя и создает этот файл. теперь при повторном запуске при наличии такого файла программа начинает работать
Python
1
2
3
4
5
6
7
8
9
10
11
12
import os
 
def welcome():
    print('Приветствую тебя мой повелитель ! ')
        
 
if 'flag_file' not in os.listdir():
    welcome()
    with open('flag_file','w'):
        pass
else:
    print(' Хай !!! Или просто работаем')
2
9 / 8 / 2
Регистрация: 27.05.2019
Сообщений: 115
18.06.2019, 15:24  [ТС]
Semen-Semenich, всё больше и больше рад, что узнал об этом форуме, спасибо!
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.06.2019, 20:51
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
проверяет наличие файла-флага
"Файл-флаг" пользователь может очень просто удалить, поэтому программы для проверки своего первого запуска обычно пишут что-то в "хитрую" ветку реестра, которую пользователь никогда не найдет.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.06.2019, 14:54
Цитата Сообщение от Garry Galler Посмотреть сообщение
обычно пишут что-то в "хитрую" ветку реестра, которую пользователь никогда не найдет.
Зачем засорять реестр? Если программа находится в своей, имеющей свое специализированное название, папке, то нормальный пользователь никогда не полезет туда и не будет ничего удалять. Те же ненормальные, которые лазят куда попало и удаляют что попало, после чего приложения, а иногда и комп перестают работать, такие пользователи не в счет.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.06.2019, 15:01
Цитата Сообщение от Viktorrus Посмотреть сообщение
Зачем засорять реестр?
Реестр нельзя "засорить". Он исключительно для этого и предназначен: чтобы в него писали конфиг. данные вместо файлов
Цитата Сообщение от Viktorrus Посмотреть сообщение
нормальный пользователь никогда не полезет туда и не будет ничего удалять.
Запись в реестр делается не в качестве защиты от "дурака" - скорей наоборот.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
19.06.2019, 15:02
Цитата Сообщение от Garry Galler
в "хитрую" ветку реестра
/etc/
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.06.2019, 22:03
Цитата Сообщение от Garry Galler Посмотреть сообщение
в "хитрую" ветку реестра
Хитрая ветка реестра потому и хитрая, что реестр перегружен. И засорение реестра лишним мусором делает реестр еще хитрее. Вам видимо это надо. Но не всем программистам нужно, что бы реестр разбухал от мусора и усложнялась работа с ним.
У Вас свое мнение, у меня свое. Я бы не хотел разбираться с реестром, куда кто попало суют что попало.

Добавлено через 6 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
Запись в реестр делается не в качестве защиты от "дурака" - скорей наоборот.
А тогда от кого? Умный никогда не будет удалять файлы не зная их назначение. Если же умный удалит файл по ошибке, то он всегда его восстановит, на то он и умный.

Добавлено через 5 минут
Цитата Сообщение от Garry Galler Посмотреть сообщение
"Файл-флаг" пользователь может очень просто удалить
Кстати я не сразу врубился. Ну и что случится если пользователь удалит файл-флаг? Просто лишний раз поприветствует пользователя. Это что трагедия? И файл-флаг будет создан снова. И из за этого писать мусор в реестр?
0
9 / 8 / 2
Регистрация: 27.05.2019
Сообщений: 115
19.06.2019, 22:05  [ТС]
Viktorrus, капец вы тут обсуждаете
Ну, если всё таки файл удалят, программа лишний раз поздоровается, не обнаружив этот файл, и создаст на месте удалённого файла новый
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
19.06.2019, 22:08
Цитата Сообщение от Vladks Посмотреть сообщение
капец вы тут обсуждаете
Извините, я просто забеспокоился, что кому не лень начнут засорять реестр мусором, а мне вдруг потом придется разбираться, если попадется такой компьютер.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.06.2019, 23:23
Цитата Сообщение от Viktorrus Посмотреть сообщение
Кстати я не сразу врубился. Ну и что случится если пользователь удалит файл-флаг? Просто лишний раз поприветствует пользователя.
Вы меня не поняли. Запись в реестр (в GUID ветку, которую знает только программа этот самый GUID и создавшая) является стандартным способом хранения данных о числе запусков программы. Так делают большинство коммерческих программ для вполне понятных целей. Поскольку имя раздела будет сложным GUID - пользователь не сможет его найти и подправить.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Умный никогда не будет удалять файлы не зная их назначение.
Умный - найдет и удалит, чтобы обойти, например, лицензионное соглашение. Я об этом.

ТС же может делать как ему угодно - я лишь указал на нормальный и вполне общепринятый способ.

А поводу "мусора" в реестре - ей-богу, вы даже не представляете сколько там всего уже есть и чего вы никогда не сможете определить - "мусор" это или нет. Да и чистить там нечего особо - улья реестра это бинарные файлы, записи хранятся компактно, так что принудительная чистка нужна разве что для случаев некорректных деинсталляций программ. Оптимизаторы же реестра - сплошной маркетинг и надувательство пользователей.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
20.06.2019, 09:32
Garry Galler, Извините, что я так завелся. Просто я жутко не люблю лазить в реестр. Но иногда приходится, и то только тогда, когда дана четкая инструкция куда лезть и что там делать. Но в чем Вы правы, так это в том, что если нужно спрятать информацию, причем не только от пользователей, но и от программистов, то реестр подходящее место. Там черт голову сломит. Особенно если свою информацию записывать там только вам понятными обозначениями.

Добавлено через 47 минут

Не по теме:

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

0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
20.06.2019, 10:10
Цитата Сообщение от Viktorrus Посмотреть сообщение
Хитрая ветка реестра потому и хитрая, что реестр перегружен.
На самом деле нет. Реестр является нормальной такой бд, в отличие от текстовых файлов, и работает быстро.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
20.06.2019, 16:40
dondublon, Я имел ввиду не то, что он медленно работает, а то, что при большом объеме в нем трудно разбираться и найти то, что нужно. Стандартные базы данных обычно имеют СУБД, с помощью которой можно быстро находить нужную информацию. Я вот не знаю, для реестра существует какая либо система поиска? С появлением Windows10 я туда еще не лазил. Может теперь там проще ориентироваться?
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
20.06.2019, 18:01
Цитата Сообщение от Viktorrus Посмотреть сообщение
dondublon, Я имел ввиду не то, что он медленно работает, а то, что при большом объеме в нем трудно разбираться и найти то, что нужно.
Даже странно. Там иерархия, практически тоже, что на файловой системе.
Есть цивильный API, не надо ничего парсить.

Цитата Сообщение от Viktorrus Посмотреть сообщение
с помощью которой можно быстро находить нужную информацию. Я вот не знаю, для реестра существует какая либо система поиска?
Смотря что вы понимаете под "быстро". Так-то там поиск есть, в regedit по кнопочке F3
Индексации, как в реляционных бд, там, конечно, нет.
0
20.06.2019, 20:01

Не по теме:

Цитата Сообщение от Viktorrus Посмотреть сообщение
Я вот не знаю, для реестра существует какая либо система поиска?
Встроенная по F3 в принципе неплохо работает, но
лично я всегда искал "хвосты" от разных программ специальной бесплатной утилитой Work With Registry. Прога очень простая, старенькая, местами недоделанная (одна кнопка не работает), но свой функционал - быстрый поиск по всем "ульям" реестра с выводом полного отчета и возможностью выборочно поудалять - отрабатывает на 100%.

0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.06.2019, 20:07
del
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2019, 20:07
Помогаю со студенческими работами здесь

Что должна делать программа?
Доброго времени суток,всем. Подскажите пожалуйста, что должна делать программа и как это вообще должно выглядеть? Задание. ...

Объясните, что должна делать программа
В сети есть следующие типы оборудования: компьютер (ноутбук) (1), сервер (2), коммутатор (свитч) (3), маршрутизатор (роутер) (4),...

Программа должна заменять МА на КО но что то не так написал
Подскажите где ошибка? Программа должна заменять МА на КО но что то не так написал #include <stdio.h> #include <conio.h> ...

Программа должна определить, что отсутствует в неравенстве
Ребята помогите пожалуйста кто может , в общем мне дали задание написать прогу на C# Задание звучит следующим образом: дается какое либо...

Флешка не форматируется, а программа что должна её форматировать зависает
Значит есть флешка, её надо форматировать. С флешкой что-то случилось и из-за этого чего-то она не работает. Я пробывал форматировать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru