Задать вопрос
  • Что нужно из Xamarin-ов на компьютере (Win.), чтобы начать разрабатывать простые моб. приложения?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    ставите Visual Studio, при выборе компонентов, старайтесь исходить из принципа "откинуть все что не понятно" - доустановить проще чем вычистить
    Ответ написан
    Комментировать
  • C#, Ошибка System.NullReferenceException при работе с базой данных MySql. Как исправить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 -
    NullReferenceException
    и так сообщает суть ошибки

    2 - уберите вот все это
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar!=' ')
                    return;
                else
                    e.Handled = true;
            }
    
            private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar != ' ')
                    return;
                else
                    e.Handled = true;
            }
    
            private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar != ' ')
                    return;
                else
                    e.Handled = true;
            }
    кто вас надоумил вмешиваться в обработку этих событий? я не к тому что нельзя, просто надо хорошо понимать зачем? *

    3 - try/catch у вас опять мешанина мыслей. именно catch должен обрабатывать ситуацию ошибок. но использовать try/catch для разделения логики - просто безумие.

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

    upd * - если вы так пробелы фильтруете, гуглите валидацию, понадежнее будет
    Ответ написан
    2 комментария
  • Простой бесплатный 3D CAD редактор?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    https://www.nanocad.ru/ и вроде бы тоже освещался на хабре
    Ответ написан
    Комментировать
  • Заменить последний символ строки на большой в C#, как?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    На коленке
    не работает.. при чем много по чему..
    к примеру вот че работает (с каментами):
    using System;
    using System.IO;
    using System.Linq;
    
    namespace lastChar
    {
        class Program
        {
            static void Main(string[] args)
            {
                var lines = File.ReadAllLines(@"C:\Windows\System32\drivers\etc\hosts"); // для примера
                for (var i=0; i < lines.Count(); i++) // в итераторе foreach элементы readonly.. типа функциональный стиль
                {
                    if (!string.IsNullOrWhiteSpace(lines[i])) // а то на пустых строках эксепшен будем ловить
                    {
                        // строка, блин, штука то то же не изменяемая.. вот засада
                        var ch = lines[i].ToCharArray();
                        var idx = ch.Length - 1;
                        ch[idx] = Char.ToUpper(ch[idx]);
                        lines[i] = new string(ch);
                    }
                    Console.WriteLine(lines[i]);
                }
                Console.ReadKey();
                //сохраняйте как хотите
                //... и да - точки (решетки) в апкейсе остаются точками. только буквы можно апкейсить
            }
        }
    }


    опять же пример грубый, явно далекий от совершенства.. но работает
    upd - спасибо Meloman19 за подсказку в каментах. теперь практически идеально
    Ответ написан
    1 комментарий
  • Math.Abs от строки как это работает?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    в этом синтаксисе, строка перебирается как массив символов, [] интерпретируется как индекс такого массива
    Ответ написан
    Комментировать
  • События скрола в c#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - скоролятся обычно контенты контейнеров а не форм. убедитесь что вы вешаете обработчик действительно на тот контейнер, в котором что то скролите
    2 - используйте точки прерывания, что бы убедиться, что вы вообще попадаете в данный обработчик
    3 - когда то давно, я бы, возможно, начал с размещения строки типа label1.Text = "bingo!"; самой первой в обработчике, и лишь потом бы усложнял логику
    Ответ написан
    Комментировать
  • Как расширить раздел root в centos?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    в общем случае, для любого линукса, обычно все просто делается с лайв носителя, gparted или patrtitionmanager, если кеды
    .. это именно на случай простой разметки, без LVM (хотя.. возможно и с LVM все будет так же просто... почти как в акронисе)

    ps если вдруг в лайве нет этих утилит (что было бы странно) их можно установить стандартным способом (хотя и на один сеанс, но большего и не надо)

    pps и да - резервное копирование важных данных крайне желательно ДО

    ppps запасной вариант (для чайников, но почему бы и нет?) - с лайва (под рутом):
    - каментим строку home в /etc/fstab
    - создаем в руте папку home
    - rsync/grsync/и даже mc - мувивм хомяка
    - убиваем раздел хомяка
    - расширяем рут до физического предела (утилиты упомянуты выше)
    ... но ни когда не забываем о резервных копиях всего важного, прежде чем начать мясорубку..

    ppps
    Кстати, НЕ ЛЕЗЬТЕ в тома LVM c помощью редакторов разделов! (gparted, partition magic, acronis и иже с ними) - угробите все нахрен.

    - акронис упомянут вообще для сравнения (и аналогия вполне уместна, см следующий пункт, все в гуях, но все работает), partition magic не упоминался вообще
    - а вот кдешный patrtitionmanager прекрасно справился (kubuntu 18.04.* по крайней мере. LVM рзадел показан на физическом девайсе - мув/ресайз (не не менее контента конечно), а его подтома показаны уже как на отдельном девайсе - мув/ресайз велкам (опять же в пределах размера LVM тома)), так что не надо крошить батон в компот (при этом, обычно, gparted, во всяких блогах, часто заявляется более продвинутым, но сам это уже не проверял)
    Ответ написан
    Комментировать
  • Как реализовать стек на C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    а что? гугл уже тоже заблокировали? стек на C#

    ps вспомнил, был тут вопрос об оптимизации стека, где то в январе 2017, чел там на классах все расписал, но в приоритете была именно скорость )).. но еще и было требование функций модифкации стека.. оказалось у меня сохранился проект. вот код (System.Diagnostics необходим для замеров времени исполнения)

    using System;
    using System.Diagnostics;
    
    namespace stack
    {
        public class Program
        {
            static private int max = 100_000_000;
    
            class Stack
            {
                private int[] sd = new int[max];
                private int sp = -1;
    
                public void Push(int data)        => sd[++sp] = data; 
                public int  Pop()                 => sd[sp--];
    
                public void Rep(int sp, int data) => sd[sp] = data; 
                public void Inc(int sp, int data) => sd[sp] += data; 
                public void Dec(int sp, int data) => sd[sp] -= data; 
                public void Xor(int sp, int data) => sd[sp] %= data; 
            }
    
            public static void StackTest()
            {
                var watch = new Stopwatch();
                var stack = new Stack();
    
                var count = max;
    
                watch.Start();
                for (int i = 0; i < count; i++)
                    stack.Push(i);
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
    
                watch.Restart();
                for (int i = 0; i < count; i++)
                    stack.Xor(i, 2);
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
    
                watch.Restart();
                for (int i = 0; i < count; i++)
                    stack.Pop();
                watch.Stop();
                Console.WriteLine(watch.Elapsed);
    
                Console.ReadKey();
            }
    
            public static void Main() => StackTest();
        }
    }


    ! данный прототип действительно не содержит ни каких обработчиков возможного переполнения ;))
    ну и кусок кода https://i.imgur.com/AejLUcX.png для классического стека, скорее всего совсем не нужен ))

    всяческие bool empty() ... это bool empty() => sp < 0; .. ну в смысле для данного прототипа ))
    Ответ написан
    Комментировать
  • Как закрыть доступ к /phpmyadmin?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    перенесите папку физически. в реальный путь "что то свое"

    ps иногда, топорные решения надежнее ;))
    Ответ написан
  • Как получать регулярно заказы в своем городе?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    а зачем ограничивать себя "своим городом"?
    Ответ написан
    4 комментария
  • Как работает Redis при одновременном доступе нескольких клиентов?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    если проект еще в стадии разаработки, может взглянете на aerospike? есть коммунити (бесплатная) редакция

    ps картинка для привлечения внимания

    ps есть еще ArangoDB, тоже по дефолту оптимизированная на in-memory, многопоточная, и плюшек вообще вагон
    Ответ написан
    7 комментариев
  • Почему прирощение на единицу в цикле break ставиться в конце, а в цикле с continue в начале?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    исключительно игры разума, автора(ов) этих фрагметов фрагментов ("волюнтаризм!" (с) к.ф "Кавказская пленица")

    так как в обоих случаях, цикл основан на счетчике, его гарантированно можно переписать на основе for, компактнее и более читаемо (понятно)

    ps а еще, хорошо бы знать исходную цель? надо ли кого то пропускать? кого? зачем? почем?.. и тд

    pps кстати, о креше второго фрагмента, перенос инкримента счетчика ((upd) в конец цикла ну или по меньшей мере после строки
    String thePlayer = players[counter]; устраняет креш ;))
    может посыл автора примера в этом?

    ppps ну или вообще в си-стайл (постинкримент по месту использования) обдумайте, почему исходный пример (вариант 2) крешится? а предложенные правки - нет
    String players[] = {"David", "Daniel", "Anna", "Gregory"};
            int totalPlayers = players.length;
     			int counter=0;
             while (counter < totalPlayers)
             {
             String thePlayer = players[counter++];
            if (thePlayer.equals("David")){
                 continue;
             }
             System.out.println("While equals Congratulations, "+ thePlayer+ "!");
            }


    в любом случае, расположение break, continue, и инкремента опорного счетчика цикла - исключительно на совести кодера

    pppps конец мистики (мы говорим о втором фрагменте)
    строка counter++; если расположена до String thePlayer = players[counter]; вызовет креш выхода за диапазон, так как while (counter < totalPlayers) условие проверил, но мы тут же его изменяем (инкремент)
    counter должен быть использован после проверки на корректность, но изменен только после использования..
    следите дальше:
    counter должен быть изменен до выхода из данного круга цикла ((upd)по continue.. а break оборвет цикл.. в целом не плохие примеры задуматься/вспомнить, как что работает ))
    то есть - если мы поместим его после continue цикл становится вечным ))
    так что либо
    String thePlayer = players[counter++];
    либо
    String thePlayer = players[counter];
    counter++; // но обязательно сразу, строго после, и ни в коем случае не раньше
    Ответ написан
    6 комментариев
  • Как декомпелировать программу C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    кхмм... все выше - детский лепет.. Red Gate .Net Reflector.. но он не бесплатный...
    Ответ написан
    3 комментария
  • Есть ли открытый проект по созданию 3D макетов зданий из их изображений?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    вы существенно расширите зону поиска, добавив/сменив 3D на CAD. пример https://opensource.com/alternatives/autocad

    ps по вопросам именно реконструкции, возможно стоит копнуть open cv, но это точно хардкор-вей
    Ответ написан
    Комментировать
  • Как просмотреть скрытые файлы?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    far ... ток сайт лежит (под телеграммовскую рубилку что ли попал???)... а так - по дефолту показывает все. еще и раскрашивает

    ps уже не лежит https://farmanager.com/download.php?l=ru фих знает че было, но лучше пользоваться моментом
    Ответ написан
    Комментировать
  • Как реализовать генерацию Ворд документа?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    1 - VBA
    2 - Open XML
    3 - кодить. можно самому. можно нанимать
    Ответ написан
    Комментировать
  • Как сделать чтобы OleDbConnection не терял БД?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - вы разобрались с понятием connection string? где оно?
    2 - вы хотите видеть одну и ту же базу? или на "другом" компьютере копия базы?
    Ответ написан
    5 комментариев
  • Как найти окна по заголовку или исполняемому файлу?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    1 - найти окно, получить хендл (дубль ответа коллеги, тем не менее)
    [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
            internal static extern IntPtr FindWindow(string lpClassName, string lpWindowName);


    2 - послать "энтрер"... а тут все может быть просто, или не совсем
    просто SendKeys мне не подошел (долгая история, но можете с него и начать ))

    3 - как вышло у меня, для типовых виндовых диалогов "открыть файл"/"сохранить файл" - надо "класс" приемник сообщения, и всю его иерархиею, начиная с хендла (диалога, в моем случае) (понадобится тула https://social.msdn.microsoft.com/Forums/vstudio/e... пример для сохранения

    "Save Table".hWndByTitle().setTitle(csvDlg).waitForIdle().sendString(
                    new string[] {
                        "DUIViewWndClassName",
                        "DirectUIHWND",
                        "FloatNotifySink",
                        "ComboBox",
                        "Edit" },
                    csv);


    реализация sendString

    internal static IntPtr sendString(this IntPtr hWnd, string[] classNames, string msg, bool verb = false)
            {
                var hCtrl = hWnd;
                if (classNames != null && classNames.Count() > 0)
                {
                    Thread.Sleep(to[toFileStdDlg]);
                    foreach (var c in classNames)
                    {
                        Thread.Sleep(to[toFileStdDlg]);
                        hCtrl = user32.FindWindowEx(hCtrl, IntPtr.Zero, c, null);
                        if (hCtrl.Equals(IntPtr.Zero))
                        {
                            $"\tERROR :: sendString not found class {c}".log();
                            return hWnd;
                        }
                        else
                            hCtrl.waitForIdle();
                    }
                }
                for (int i = 0; i < msg.Length; i++)
                    user32.PostMessage(hCtrl, WM_CHAR, msg[i], 0);
    
                Thread.Sleep(to[toFileStdDlg]);
                user32.PostMessage(hWnd, WM_KEYDOWN, user32.VkKeyScan('\r'), 0);
                user32.PostMessage(hWnd, WM_KEYUP, user32.VkKeyScan('\r'), 0);
                return hWnd;
            }
    Ответ написан
    Комментировать