Хорошо бы подробней описать работу приложения. Например:
Вот пользователь скачал это приложение и установил. Запустил. Приложение говорит: дай мне токен. Пользователь дал токен. Приложение говорит: введи пароль, я зашифрую токен. Пользователь ввел.
В другой раз пользователь запустил приложение, оно говорит: пароль! Пользователь ввел пароль, приложение расшифровало токен и провело необходимые действия с токеном. Пользователь счастлив.
Без крайней необходимости нежелательно крепить скриншоты, если есть возможность привести лог ошибки текстом. Текст можно копипастить, гуглить, удобно читать. А скриншоты неудобны, особо на мобиле
Не надо размещать весь свой код. Размести самое важное. И вывод тоже размещай в виде текста, а не скриншота; скриншоты неудобно смотреть, неудобно по ним гуглить… делай не как тебе удобно, а как удобно тем, кому ты пишешь.
Dmustache Usakov, в твоем примере наверчены какие-то global, и кажется ты предполагаешь «открыть» файл в смысле вызвать какой-либо excel для просмотра csv. Но, во-первых, не у всех в системе есть excel или что-то, что сможет корректно отобразить csv; во-вторых, ты из программы никак не проверяешь, что происходит вне её. Какая конечная цель у всего этого?
Dmustache Usakov, по первой ссылке приведены примеры кода, который позволяет выбрать файл и сохраняет путь к файлу в переменную (кажется, в root.filename)
Вторая функция должна получать этот путь как аргумент и передавать его функции open(). Файл откроется.
Другой вопрос, что значит «откроется».
Это значит, что для твоей программы появится доступный объект, содержащий файл в каком-либо виде (например, как текст, или как бинарный объект, или ещё как). Это не значит, что файл откроется на экране в word или скажем в браузере. Он просто откроется для чтения или записи. Дальше делай с ним, что тебе надо.
Во-первых, сообщения об ошибках и код лучше вставлять в виде текста, а не скриншотов - всегда, когда это возможно.
Во-вторых, Failed to write executable - есть ощущение, что какая-то прога не дает перезаписать файлы - возможно, антивирь, защита системы, может файл просто запущен в данный момент... может, коварный вирус его в данный момент редактирует, "прячась в кластерах на диске"...
А может, банально прав не хватает? Может, ты его от админа раньше ставил, а теперь от юзера?
admiralbub, коротко:
Перебираем все строки таблицы, кроме выбранной. Сравниваем каждую с выбранной, находим общие элементы. Сравнение можно делать через пересечение множеств.
Считаем количество общих элементов для каждой строки, если больше единицы, увеличиваем счётчик результата на единицу.
Это самый тупой способ «в лоб», банальный перебор.
TanderOFF, это и есть софт.
Попытайся сделать сам, а если не получится, приходи и покажи, что и как делал, и возможно кто-то подскажет, в чём была ошибка и как делать правильно.
Впрочем, не настаиваю. Но твой вопрос попадает под п.5.12
Поэзия – та же добыча радия.
В грамм добыча, в годы труды.
Изводишь единого слова ради
Тысячи тонн словесной руды.
Но как испепеляюще слов этих жжение
Рядом с тлением слова-сырца.
Эти слова приводят в движение
Тысячи лет миллионов сердца.
Сам не могу похвастаться крутостью, увы. Но иногда в начале начал достаточно сдвинуться с мертвой точки, а там пойдёт. Меня, например, в свое время сдвинул товарищ, который научил ориентироваться в IDE VBA. Казалось бы...