• Blogger и xml "база данных" - как это может работать?

    iamserge
    @iamserge Автор вопроса
    Василий Банников, А я что ни будь выиграю в плане скорости? То есть план пока созрел примерно такой:

    1. Использовать сжатие
    2. Отдельно в файле сохранить данные и скорее всего где то на стороне ...
    3. В таком формате попробовать сделать все довольно быстрым и для себя при этом удобным более менее ...

    Массивы не самый удобный формат когда делаешь сложную структуру вручную просто - json как таковой использовал только как проходный и сам его не "создавал", даже как то в голову такая идея не приходила ни разу

    Вопрос о скорости именно относительно него - т.к. он тоже не выглядит таким уж приятным для ручного создания БД в несколько МБ текста
  • Blogger и xml "база данных" - как это может работать?

    iamserge
    @iamserge Автор вопроса
    Спасибо, слышал про гугл диск, жаль конечно что это был скорее баг чем фича ...
  • Blogger и xml "база данных" - как это может работать?

    iamserge
    @iamserge Автор вопроса
    Василий Банников, как и где это в json будет храниться?
  • Blogger и xml "база данных" - как это может работать?

    iamserge
    @iamserge Автор вопроса
    rPman, Не покажу, нет его пока. Но это внутриигровые данных - ха-рки оружия, игрока и т.п....
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Дмитрий Беляев, Уже все готово, но не помогает ... У меня вываливается все кучей как и ранее ...

    private async void button1_Click(object sender, EventArgs e)
            {
    
                try
                {
    
                    using (var process = Process.Start(psi))
                    {
                        bool hasOutput, hasErrors;
                        do
                        {
                            string output = await process.StandardOutput.ReadLineAsync();
                            string errors = await process.StandardError.ReadLineAsync();
    
                            hasOutput = !(output is null);
                            hasErrors = !(errors is null);
    
                            if (hasOutput) richTextBox2.AppendText(output);
                            if (hasErrors) richTextBox2.AppendText(errors);
                        }
                        while (hasOutput || hasErrors);
                    }
    
                }
    
                catch (Exception eU)
                {
    
                    // Сообщение о ошибке
                    MessageBox.Show(eU.Message);
    
                    // Информаци о ошибке
                    MessageBox.Show(eU.ToString());
    
                }
    
    
            }
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Дмитрий Беляев, То есть мне буквально не удается получить "Next step 0" как только он готов, я могу его получить как только готов "Next step 10" и все остальное между ними ... Даже цикл и перенос var process = Process.Start(psi) c Using никак не помог =( Все равно весь вывод вываливается одной кучей
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Дмитрий Беляев, Я вот так переделал .... Но вот в чем проблема ... Мне все равно приходится после нажатия ждать окончания работы скрипта, и только потом я могу получить вывод построчно, но уже готовый вывод, а не то что подгружается поступательно ... Скрипт то будет работать значимо дольше на практике и ждать пока он закончит довольно так неудобно ... эх не получается почему то.

    private async void button1_Click(object sender, EventArgs e)
            {
    
                try
                {
    
                    bool hasOutput, hasErrors;
    
                    string output = await process.StandardOutput.ReadLineAsync();
                    string errors = await process.StandardError.ReadLineAsync();
    
                    hasOutput = !(output is null);
                    hasErrors = !(errors is null);
    
                    if (hasOutput) richTextBox2.AppendText(output);
                    if (hasErrors) richTextBox2.AppendText(errors);
    
    
                }
    
                catch (Exception eU)
                {
    
                    // Сообщение о ошибке
                    MessageBox.Show(eU.Message);
    
                    // Информаци о ошибке
                    MessageBox.Show(eU.ToString());
    
                }
    
    
            }
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Дмитрий Беляев, Все верно, это немногое что я точно помню :) Но пока вот так вот,

    Feature 'nullable reference types' is not available in C# 7.3. Please use language version 8.0 or greater.

    Похоже придется обновиться как то ... Надеюсь это тоже free иначе у меня будут проблемы. Одно правда не понял, как вы умудрились все "упаковать" в одну функцию, надо будет попробовать переделать это в процедуру и при запуске приложения вызывать ее. Если все как я понял, то оана должна запуститься и себе спокойно регулярно выдавать мне все что сделал скрипт на python ...
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Дмитрий Беляев, Т.е. я жму на кнопку один раз (более не получается, ошибка) и пока скпирт не закончит - ничего от него не получить ... Ну и через 5 секунд он мне от первого нажатия выдает сразу все что было за раз

    Next step 0
    Next step 1
    Next step 2
    Next step 3
    Next step 4
    Next step 5
    Next step 6
    Next step 7
    Next step 8
    Next step 9
    Next step 10
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Дмитрий Беляев, Спасибо, хотел бы сказать что стало лучше, но вот на что он ругается ...

    'The stream is currently in use by a previous operation on the stream.'


    Это при повторном нажатии на кнопку, через пару секунд после старта приложения, т.е. к тому времени уже точно что то на вывод то должно быть ... При этом по факту обернул в try {} catch {} и о чудо заработало, НО! у меня есть только одна попытка после запуска и мне так или иначе приходится ждать ...

    Т.е. этот код срабатывает, но все равно нужно ждать все 5 секунд пока скрипт не закончит. Ничего каждые 0,5 секунды от него получить не удается никак. Пробовал ReadLineAsync(), но там с Result не выходит использовать await для строки, не совсем ясно что делать ...

    В общем то проблема как и ранее, все равно ждать приходится так или иначе, а ведь скрипт мне каждые 0,5 секунды что то да выдает =(
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Получилось хм .... Но все равно форма висит до последнего ... Т.е. вот так вот пять секунд все равно придется ждать, ну или ждать заранее, чтобы потом получить готовый результат =(

    private void button1_Click(object sender, EventArgs e)
            {
    
                output = process.StandardOutput.ReadLineAsync().Result;
                errors = process.StandardError.ReadLineAsync().Result;
    
                richTextBox2.AppendText(errors);
                richTextBox2.AppendText(output);
    
            }
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    cicatrix, Да, было бы проще, но у меня есть проблемы и зависимость от python, там очень спицифич. API предлгают только на нем официально и выбора пока нет ...
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Спасибо, но у меня это скорее хобби и я пока мало готов к таким подвигам, да еще и новые библиотеки осваивать. Вожусь в рамках Visual Studio Community 2019 b и ни шагу в сторону :) Да и я с этим еле разобрался ...
  • Как сделать постоянный фоновый Process в C#?

    iamserge
    @iamserge Автор вопроса
    Попробовал вторым способом, но получил:

    'StandardOut has not been redirected or the process hasn't started yet.'


    Т.е. просто вытащил часть отдельно, чтобы пока попробовать получить вручную в процессе работы скрипта ...
    private void button1_Click(object sender, EventArgs e)
            {
    
                output = process.StandardOutput.ReadToEndAsync().ToString();
                errors = process.StandardError.ReadToEndAsync().ToString();
    
                richTextBox2.AppendText(errors);
                richTextBox2.AppendText(output);
    
            }


    Т.е. процесс начался точно, видимо мои настройки для процесс process не работают? Просто больше не знаю в чем еще может быть дело, если оставить там где был код, т.п. при запуске формы, то вывод вот такой:

    System.Threading.Tasks.Task`1[System.String]System.Threading.Tasks.Task`1[System.String]


    У меня такое чувство, что я интуитивно это неверно понял, но вроде бы как где бы тут быть подвоху если все называется крайне очевидно ...
  • Как создать DateTime с TimeZoneInfo не меняя время?

    iamserge
    @iamserge Автор вопроса
    Вроде бы как это заработало, просто у меня много мест которые нужно сводить воедино на МСК и центр. европу и я сам сейчас понять не могу правильно или нет, просто потому что так виртуозно во времени не ориентируюсь :) Но похоже что это оно т.е. решение ...
  • Куда пропала Новая Зеландия?

    iamserge
    @iamserge Автор вопроса
    GavriKos, Т.е. у меня есть дата и время, как строка. Есть место, нужно добавить к нему часовой пояс. То есть

    Сначала есть: 2020-08-17 02:00:00 // Просто время события в NZ
    Потом нужно: 2020-08-17 02:00:00+12:00 // Отметить часовоя пояс т.к. я знаю, что это у них но время дано без часового пояса
    В итоге сделать: 2020-08-16 17:00:00+03:00 // Когда это все в МСК
  • Куда пропала Новая Зеландия?

    iamserge
    @iamserge Автор вопроса
    GavriKos, А так это разве не готовая? Т.е. у меня он есть, но его как города там нету вот в чем дело ... Еще есть London к примеру, но с ним проблем никаких нет.

    Не понимаю о чем вы, что может быть еще более готовым в этой ситуации?
  • Куда пропала Новая Зеландия?

    iamserge
    @iamserge Автор вопроса
    Мне нужна столица, т.е. Wellington ... Но я правда два этих пояса вижу первый раз ... Вродебы как он на самом краю этого архипелага Chatham и туда относится? Т.е. она у них как то прямо на границе почти, жуть как заморочено все ...
  • Как получить отслеживаемый и постоянный как поток ProcessStartInfo в C#?

    iamserge
    @iamserge Автор вопроса
    Владимир Коротенко,

    singleton

    Спасибо, у меня от переизбытка новых слов сегодня явно перегруз будет ... Но выглядит заманчиво. Пока пойду готовить мидии в словочном соусе, подумаю над всем этим :)
  • Как получить отслеживаемый и постоянный как поток ProcessStartInfo в C#?

    iamserge
    @iamserge Автор вопроса
    Владимир Коротенко, А как его "ловить" потом? Т.е. я пробовал создать Worker, глобально, ну а потом его в таймере как то "опросить что там" ... То есть для меня этот поток потерялся что ли, он там внутри стартует и как к нему подобраться то потом из моего таймера?