Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/48: Рейтинг темы: голосов - 48, средняя оценка - 4.69
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468

Хранить строку в приложении

14.01.2022, 12:58. Показов 11051. Ответов 209
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Помогите, пожалуйста с курсовой.
Значит задача: Создать приложение с пользовательским доступом (логин/пароль, пользователь может быть пользователем, может быть админом). Значит я делаю следующим образом: В программу уже вшит пользователь "Администратор", при первом запуске предлагается создать ему пароль. Как только пароль создан рядом с приложением создается папка "Users" (по ее наличию, собственно, и проверяется первый запуск), где в файлах в зашифрованном виде хранится информация о пользователе.

Препод говорит, что это не совсем правильное решение, и файла с данными "Администратор" в папке с пользователями быть не должно, так как (цитирую дословно) "Я скопирую пользователей в другое место, прибью папку Users, запущу программу и получу доступ к Администратору, снова введя пароль, потом верну пользователей назад"

Можно ли как то хранить строковую переменную внутри приложения? Или может еще где-то. Или может какой-то другой метод хранения данных о пользователях есть? Буду очень благодарна за советы. Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2022, 12:58
Ответы с готовыми решениями:

Как и в каком виде хранить файлы в приложении
Добрый вечер! Помогите, пожалуйста, со след. заданием.:( Требуется в имеющуюся формочку добавлять материал (то есть загружать файл с...

Как можно хранить файлы, загружаемые пользователем в приложении?
Есть приложение C# .NET 5.0, связанное с MS SQL. Пользователь должен загружать файлы (изображения) прямо в приложении и они должны...

Как правильно хранить и использовать константы в WPF приложении
Сабж в теме. Использую такой способ: имеется статический класс (вернее несколько, отдельно для числовых, строковых и прочих констант) в...

209
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 16:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от limeniye Посмотреть сообщение
Альтернатива:
Очень может быть. Я уже сморю в сторону делегатов.

Добавлено через 3 часа 19 минут
limeniye, вероятно, вы имели в виду нечто такое:
в классе UManager:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        public delegate void SignMessage( string message );
 
#pragma warning disable CS8632 
        public event SignMessage? Notify;
#pragma warning restore CS8632
 
        // .....
        // .....
 
        // Метод входа
        public void LogIn( string name, string password )
        {
            bool b = false;
            if ( !_authsrv.IsAuthenticated )
                b = _authsrv.SignIn( name, password );
            Notify?.Invoke( $"{name} logged in {b}." );
        }
 
        // Метод выхода
        public void LogOut()
        {
            string cname = _authsrv.CurrentUser.Name;
            _authsrv.SignOut();
            Notify?.Invoke( $"{cname} logout completed." );
        }
В основной проге:
C#
1
2
3
4
5
6
7
8
9
10
11
        UManager mng = new();
        mng.Notify += PrintMessage;
 
        static void PrintMessage( string message ) => Console.WriteLine( message );
 
 
            mng.LogIn( "_Admin", "" );
 
            Console.WriteLine( $"{mng.AddUserRange( users )} users added"  );
 
            mng.LogOut();
Code
1
2
3
_Admin logged in True.
5 users added
_Admin logout completed.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.01.2022, 19:09
неееет.

Писал от руки, могут быть ошибки.
C#
1
2
3
4
5
6
public enum AuthorizationState
{
    Uknown,
    Authorized,
    Unauthorized,
}
C#
1
public delegate void UserAuthorizationEventArgs(object sender, AuthorizationState newState);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class UserAuthorizationService
{
    public AuthorizationState CurrentState { get; private set }
    public event AuthorizationEventArgs AuthorizationStateChanged;
 
    protected void RaiseActionAuthorizationState(AuthorizationState newState)
    {
        if(newState == CurrentState)
            return;
 
        CurrentState = newState;
        AuthorizationStateChanged?.Invoke(this, newState);
    }
 
    public virtual Login(LoginInfo loginInfo)
    {
          throw new NotImplementerException();
    }
 
    public virtual Logout()
    {
          throw new NotImplementerException();
    }
}
и только после Вы делаете:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Program
{
    private static AuthorizationService service { get; } = new AuthorizationService();
    static Program()
    {
        service.AuthorizationStateChanged += OnAuthorizationStateChanged;
    } 
 
    private void OnAuthorizationStateChanged(object sender, AuthorizationState newState)
    {
        Console.WriteLine(newState == AuthorizationState.Authorized ? "User authorized" : "User deauthorized");
    }
 
   void Main()
    {
 
    }
}
Добавлено через 1 минуту
Это простая реализация. Но посыл примерно такой.
А Ваш код, опять же, нарушает гибкость.

Добавлено через 1 минуту
это во-первых.

Во-вторых. Что у Вас с разметкой? Почему так ужасно?

Добавлено через 38 секунд
wizard41, забыл отметить*
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 19:22
limeniye, нуууу вы затеяли конечно ))
Я мог бы еще хуже навертеть, но в рамках задачи этого наверное не стоит делать.
И зачем вы вытащили наружу AuthorizationService?
У меня затея была такая: сама авторизация происходит внутри библиотеки и ее реализацию пользователь не видит и (!) не инициирует ее сам, тем более, не создает объектов ее класса.
Ему лишь передается результат работы той или иной функции.

В частности, выбор и структуру сообщения об удачном/не удачном входе он сам уже решает что и как выводить, на основании булева или еще какого значения.

C#
1
throw new NotImplementerException();
Ну уж исключения тут зачем?

Смысл в том, чтобы конечному пользователю было наиболее просто выполнять те или иные методы, не вдаваясь в подробности как и что объявлять, инициировать и т.п.

P.S. Сам сервис авторизации внутри работает через интерфейс, инициируется конструктором UManager класса и работает от его команд, которые, в свою очередь, запрашивает пользователь "сверху".
Но все это надо еще причесывать...

Добавлено через 1 минуту
Цитата Сообщение от limeniye Посмотреть сообщение
Что у Вас с разметкой? Почему так ужасно?
Что Вы имеете в виду? Отступы большие?
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.01.2022, 19:31
Цитата Сообщение от wizard41 Посмотреть сообщение
И зачем вы вытащили наружу AuthorizationService?
Подразумевалось, что можно не весь код пихать в Main, а разбить на методы.

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
У меня затея была такая: сама авторизация происходит внутри библиотеки и ее реализацию пользователь не видит и (!)
Так а реализацию он и не видит. AuthorizationService её инкапсулирует. Я поэтому и оставил virtual метод.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 19:33
Пользователь видит только выделенный класс:
Название: Безымянный.png
Просмотров: 51

Размер: 4.2 Кб
А вся остальная галиматья происходит без его ведома )
Но я чуть более вникну в суть кода, вами написанного, может быть пригодится при внимательном осмотре внутренних реализаций.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 19:34
Цитата Сообщение от limeniye Посмотреть сообщение
AuthorizationService её инкапсулирует
Верно. Это я понял.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.01.2022, 19:39
Цитата Сообщение от wizard41 Посмотреть сообщение
В частности, выбор и структуру сообщения об удачном/не удачном входе он сам уже решает что и как выводить, на основании булева или еще какого значения.
Грубо говоря, Вы хотели сделать какой-то класс, будь-то API, или получение из Б.Д. и подклбчить его напрямую к Console? Такое себе решение. В таком случае только одна часть Вашего приложения будет знать о том, что пользователь авторизовался, или вышел.

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
Ну уж исключения тут зачем?
Там у меня метод virtual, а по-хорошему вообще должен быть абстрактный.

Но я писал с телефона и упростил создание ещё одного класса.

Добавлено через 2 минуты
Цитата Сообщение от wizard41 Посмотреть сообщение
Смысл в том, чтобы конечному пользователю было наиболее просто выполнять те или иные методы, не вдаваясь в подробности как и что объявлять, инициировать и т.п.
смысл программ в том, чтобы они были стабильными и надёжными, как швейцарские часы. Да, Вы должны упрощать для других разработчиков, но при не ограничивать код. Код должен быть гибкий.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 19:39
Цитата Сообщение от limeniye Посмотреть сообщение
и подклбчить его напрямую к Console?
Не только к Console. К формам тоже.
Цитата Сообщение от limeniye Посмотреть сообщение
В таком случае только одна часть Вашего приложения будет знать о том, что пользователь авторизовался, или вышел.
Именно. Это и требуется!
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.01.2022, 19:41
Цитата Сообщение от wizard41 Посмотреть сообщение
Что Вы имеете в виду? Отступы большие?
Наименования. Я такое видел только у программистов с стажем более 10 лет. Сейчас так уже никто не пишет -- это перечит рекомендациям Microsoft.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 19:45
Форма говорит: "дай-ка мне вон того юзверя!"
А библа отвечает: "фиг тебе, ты кто такой?"
То есть в форма и знать не знает как там что получается, но должна выполнять то, что от нее требуют.

Добавлено через 57 секунд
Цитата Сообщение от limeniye Посмотреть сообщение
Наименования.
Старые привычки... Что в голову первое взбредет )

Добавлено через 1 минуту
Цитата Сообщение от limeniye Посмотреть сообщение
Сейчас так уже никто не пишет
Как это никто? Я вот, например
Да я не особо обращаю внимания на это. Определенных стилей придерживаюсь только в командной разработке, но такое бывает не часто.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.01.2022, 19:46
Цитата Сообщение от wizard41 Посмотреть сообщение
Именно. Это и требуется!
В таком случае представьте ситуацию. Допустим у Вас проект WinForms.
Пользователь нажал "Выйти". Если Вы сделали не таким способом, как я показал, значит только то, что у Вас в каждом методе будет условия: авторизирован пользователь, или нет. И не забывайте, что в программах не только пользователь, а ещё куча других сущностей. Вы будете проверять каждую?

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

И всё это -- автоматически. А когда Вы делаете "напрямую" -- Ваши классы будут огромных размеров, а толку?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 21:33
Цитата Сообщение от limeniye Посмотреть сообщение
что у Вас в каждом методе будет условия: авторизирован пользователь, или нет
Не совсем так. Но это всего лишь наброски.
У меня сделан некий транзитивный подход, когда команды "верхнего звена" дергают нужные методы в предоставленном классе, а уже он, в свою очередь, управляет внутренними методами.
Цитата Сообщение от limeniye Посмотреть сообщение
Так у Вас просто срабатывает событие, которое всей программе оповещает что пользователь вышел:
У меня вся библиотека знает о входе/выходе пользователя и кто конкретно в данный момент залогинен. Тут все нормально.

Да, советы учту конечно ваши, просто я не сижу по 3 часа над этим, так, 15 минут какую-то мысль прикинул, пару строк написал и ушел по другим делам. Потом вернулся, еще и забыл что я там хотел.... И начинается рефакторинг...

Добавлено через 1 минуту
Цитата Сообщение от limeniye Посмотреть сообщение
Ваши классы будут огромных размеров
Пока с размерами все в порядке
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    internal class AuthService : IAuthService
    {
        /// <summary>
        /// Current registered user
        /// </summary>
        public StructUser CurrentUser { get; private set; }
 
 
        /// <summary>
        /// Authenticated flag
        /// </summary>
        public bool IsAuthenticated { get; private set; } = false;
 
 
 
        /// <summary>
        /// Sign In User
        /// </summary>
        /// <param name="user">Struct User</param>
        /// <returns>True/False of sign in</returns>
        public bool SignIn( string name, string password )
        {
            string hash = Hash.GetHash( password );
            foreach ( User usr in UManager.ListOfUsers )
            {
                if ( name == usr.Name && hash == usr.Hash )
                {
                    CurrentUser = new StructUser( usr.Name, "*********", usr.Role );
                    IsAuthenticated = true;
                    return true;
                }
            }  
            return false;
        }
 
 
 
        /// <summary>
        /// Sign Out
        /// </summary>
        public void SignOut()
        {
            CurrentUser = new StructUser( "", "", UserType.Nothing );
            IsAuthenticated = false;
        }
    }


Добавлено через 1 час 20 минут
limeniye, проще говоря, Вы предложили событийную модель оповещения о регистрации, я же, довольствовался простыми возвратами из методов. В конце концов, среагировать на событие или возврат результата метода форма сможет в любом случае: тут уже реализация в самой форме.
Не стоит забывать еще о том, что надо знать кто именно залогинен, т.к. простой User создающий администраторов будет выглядеть не очень.
Ладно, этот момент еще требует доработок, додумываний...

В настоящий момент меня интересует другой нюанс: раньше класс User был публичный, для общего понимания между библой и приложением, использующим ее. Т.е. "фронтенд" мог создавать пользователей User user = new User(...); и управлять ими на уровне своего приложения, т.к. на уровне библиотеки он с ними ничего поделать не мог, не авторизовавшись.
В итоге я от такой идеи отказался, полностью скрыв класс User от "наружного видения" - он используется только внутри библы в списке пользователей. Но сделал общую структуру, которая и передается в методы для добавления нового пользователя, и возвращается в качестве результата списком структур.

Ну и вопрос в том, а надо ли было делать такие "преобразования", или можно было оставить открытым класс User...?
Но как-то запретить создание экземпляров вне библиотеки?

Добавлено через 11 минут
Прихожу к выводу, что организацию хранения данных о пользователе внутри dll нужно сделать по другому.
А класс User действительно вытащить наверх, для однозначности между библой и приложением.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.01.2022, 23:07
Цитата Сообщение от wizard41 Посмотреть сообщение
Ну и вопрос в том, а надо ли было делать такие "преобразования", или можно было оставить открытым класс User...?
Вообще, как-то Элд Хасп мне говорил, что если создаётся пользователь, например, то правильно было бы передавать его не как объект в параметр метода, а каждое его свойство в параметры метода. Мол, метод отвечает за то какой будет конечный объект. Тип, внутри библиотеки, может поменяться, но та как он собирается внутри метода -- при обновлении библиотеки это не скажется на работе программы.

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

Я вызываю тебя, Элд Хасп .
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 23:24
Цитата Сообщение от limeniye Посмотреть сообщение
а каждое его свойство в параметры метода
Вот вот )
В таком случае что возвращать в виде пользователей? Генерики, и пусть верха сами пытаются привести object к своему типу?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
28.01.2022, 23:37
Цитата Сообщение от limeniye Посмотреть сообщение
Я вызываю тебя, Элд Хасп
Полторы сотни постов читать неохота.
А по последним не понял из чего спор разгорелся.

И у меня предложение, к вам обоим (в т.ч. wizard41).
Тема как мне кажется уже давно вышла за рамки вопроса в топе.
Наверное стоит её разделить.
С какого поста стоит выделить в отдельную тему?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
28.01.2022, 23:50
Цитата Сообщение от Элд Хасп Посмотреть сообщение
из чего спор разгорелся.
Спора никакого нет, возникли сложности с пониманием того, каким образом общаться приложению с библиотекой, в частности относительно типа User. Контейнеры IoC? DI? Или заготовленный тип (класс) в самой библиотеке?
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Наверное стоит её разделить.
С какого поста стоит выделить в отдельную тему?
Сложный вопрос. Даже если делить, то в какую? На самом деле я понемногу веду свою версию вопроса, и до главного вопроса топика еще не добрался. Не пришли к общему мнению.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
29.01.2022, 00:05
Цитата Сообщение от wizard41 Посмотреть сообщение
каким образом общаться приложению с библиотекой
А библиотека это не часть приложения?
Какая-то внешняя библа?
Ну, тогда она сама и задаёт правила общения.

Цитата Сообщение от wizard41 Посмотреть сообщение
Контейнеры IoC? DI?
Для User'а - избыточно я думаю.
Есть какие-то параметры для создания пользователя.
В простейшем виде Логин и Пароль.
Передаются в библу, она возвращает результат регистрации и готового пользователя.
Можно вернуть их в одном типе.
Так как регистрация пользователя это модальный диалог, то здесь даже никакой асинхронности не нужно.
Она только вредить будет.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.01.2022, 00:10
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, тогда она сама и задаёт правила общения.
Вот так видимо правильно, да.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
она возвращает результат регистрации и готового пользователя
Готового пользователя - в виде своего внутреннего класса (объекта), который доступен и внешнему приложению? Т.е. тип пользователя берется из библиотеки, а не какой-то там свой собственный у приложения.
Кое-что начинает проясняться, ок.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
29.01.2022, 00:30
Для повышенной безопасности из библы приходит открытый ключ, которым зашифровываются логин и пароль.
И уже зашифрованные передаются в библу.

Пример подобной реализации: Присоединённые свойства (Attached Property) для PasswordBox: привязка Password и безопасная работа с паролем.

Но в большинстве случаев хватает обычного TextBox с маскирующим шрифтом: Реализация TextBox с функцией Скрыть/Показать пароль

Добавлено через 6 минут
Цитата Сообщение от wizard41 Посмотреть сообщение
Готового пользователя - в виде своего внутреннего класса (объекта), который доступен и внешнему приложению?
Если это просто оболочка со свойствами (то есть DTO) то можно вернуть и класс.
Если это какая-то Бизнес Сущность, то нужно тогда её куда-то сначала отразить.


Может быть и какая-то средняя реализация.
Есть публичный интерфейс или тип с членами доступными всем.
На их основе создаётся производный тип с дополнительными internal членами или явно реализующий internal интерфейс.

Всё зависит от задачи.
Что связанно с юзером в бизнес логике, какая информация нужна по нему внешним объектам, слоям и т.д.

Добавлено через 4 минуты
Библиотека же ничего не знает про приложение.
Она может вернуть данные только в том типе о котором знает.
У это уже задача приложения связать между собой разные библы так, что всё в целом заработало.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.01.2022, 00:30
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Есть публичный интерфейс или тип с членами доступными всем.
Вот и я в этом направлении думаю.
С отражением получалось, но хочется попроще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2022, 00:30

Где хранить информацию в WPF приложении чтобы её можно было переносить с приложением на любой компьютер?
Народ, привет. У меня есть приложение с БД ( SQL Server ) созданной в Visual Studio 2012. Но эта БД работает не у всех пользователей,...

Где лучше хранить строку подключения к sql?
Форумчане не подскажете где лучше хранить строку подключения к sql? хочу написать универсальный кдасс для получения соединения

Как хранить переменную в приложении
Здравствуйте! Приложение хранится на сервере, в приложении нужно хранить переменную с адресом e-mail сервера, менять эту переменную могут...

Где лучше хранить рисунки в приложении?
Доброго дня. В моём приложении будет пакет рисунков. Куда их лучше положить, в res\drawable или в assets, с прицелом в дальнейшем на то...

Как хранить в приложении большой объем текста
как вставить текст в Visual Basic?


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru