• Как реализовать генерацию Ворд документа?

    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;
            }
    Ответ написан
    Комментировать
  • Как изолировать два HDD/SSD с Windows?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    может это? Sm3ivYb.png
    напомню что админские права позволяют легко менять данный статус.. если вам надо больше изоляции - видимо только шифрование*

    upd * - любое шифрование на порядки повышает риски потери данных. если вы еще не наработали приличных навыков, создания резервных копий
    Ответ написан
    5 комментариев
  • Оптимальная модель серверного SSD?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    в любом случае Intel
    Ответ написан
    Комментировать
  • Существует полная симуляция компьютера на уровне сигналов?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    смотря какого? возможно, некоторые чипы уже стимулируются на 100% (или относительно близко к тому) в процессе проектирования

    но вряд ли приличный смарт, ноут, десктопник... о серверах, ДЦ и суперкомпах можно говорить уже уверенно - нет

    это очень накладно

    другой вопрос - симуляция на уровне логики команд, это да, (upd в частности) основной инструмент взлома чужого софта (дорогого взлома, дорогого софрта/секретов/.. и тд) - это называется эмуляторы
    Ответ написан
    Комментировать
  • Есть ли в c# удобная функция поиска массива байтов внутри другого массива байтов?

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

    ps
    using System;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] data = new int[128];
                /// init data
                int[] marker = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };  // фикция.. но и работа бесплатная
                bool marker_present = default;
                for (var i = 0; i < data.Length - marker.Length; i++) // data.Length-marker.Length важно, иначе можете получить вылет за границы диапазона
                {
                    marker_present = true;
                    for (var j = 0; j < marker.Length; j++)
                        if (data[i + j] != marker[j])
                        {
                            marker_present = false;
                            break;
                        }
                }
                Console.WriteLine($"marker_present = {marker_present.ToString().ToUpper()}");
            }
        }
    }
    Ответ написан
    4 комментария
  • Как самоуничтожить программу при невыполнении условия?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    любопытно..
    - можно создать процесс в памяти не из файла, и передать ему управление
    - чем вас не устраивает просто отказ от работы? )) .. начнем с того что ни кто не запрещает, не акредитованному пользователю, иметь копию в downloads (и тд) .. закончим тем, что без применения дотфускатора (хотя бы бесплатного) любая школота, с достаточным энтузиазмом, вылечит вашу "защиту"

    ps удалять нет смысла, если оригинал не защищен, хотя бы дотфускатором. если защищен - вряд ли стоит так заморачиваться, достаточно отказаться от работы

    pps тоже думал о привязках - мне больше нравится идея привязки к SID системы или пользователя. гарантировано уникально, зато можно позволить пользователю менять диск на больший или более быстрый.. и даже менять комп.. (в рамках одной сети сама винда начнет визг, при попытке дублирования SID ос, а вот SID юзера... в рамках корпоративного AD - да, может белее чем тиражироваться) (но кто запрещает проверять пару сидов сразу?)
    Ответ написан
    Комментировать
  • Почему чувствую себя бесполезным и ни на что не способным на первой работе по специальности?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    1 - без обид - вопрос и по духу (100%) и по сути (100%) к психотерапевту
    2 - вам точно нравится программирование? вообще? если не особо - меняйте профессию! (на что - это уж как то сами... или с психотерапевтом)

    ps чисто по человечески - "вступили в де;%о"... бывает... при чем со многими... вы перенесите внимание на то что ВЫ ХОТИТЕ... и двигайтесь к этому (с доктором или без, ну право, без обид, бывает что и доктор здорово поможет).. а в данном де;%е - не задерживайтесь... ни минуты

    удачи!
    Ответ написан
    Комментировать
  • Удалить байты из файла без его полной перезаписи можно только с конца?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    философски все классно.. а где примеры C# кода то?
    мне не известен способ, без перезаписи файла (если ОС умеет оптимизировать - хвала ей upd но.. назовите ее )))
    а базовый набор инфы, к примеру тут - https://metanit.com/sharp/tutorial/5.4.php

    ps в современных компах, при размерах файла в считанные мегабайты - это все мелочи

    pps
    - нужна синхронизация по блокам/кластерам, в теории - да, нет проблем, вот только не C#

    ppps
    в лучшем случае это будут вызовы api системы, но тогда повторюсь - примеры в студию, и я присоединюсь к аплодисментам
    Ответ написан
  • Если у материнки поддерживаемый тип памяти только ddr3 можно ли поставить ddr2?

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

    удачи ))
    Ответ написан
    Комментировать
  • Что нужно уметь, чтобы я справедливо мог вписать git в резюме?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    если не уверены, пишите:
    - знаком с git
    - имею навыки работы с git
    ps возможно позднее, вы поймете что уже тигр в git... но тогда и вопрос отватился
    Ответ написан
    Комментировать
  • Стоит ли ставить SSD для ОС в сервер?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    на мой взгляд:

    1 - бюджетный sdd 32/64 под систему для загрузки + RAID10... но (! опять же на мой взгляд) ... если RAID10 - то не 4, а от 8 хардов минимум (а еще лучше 16, и да (!!!) - можно самых бюджетных... но желательно еще штуки 2 на полку в шкафу, на случай, который может так и не произойдет, но лучше что бы были... если 16 - то лучше хотя бы 3 в запас)

    2 - а можно и SSD. по моим наблюдениям - марафонцы, это Intel, потом San Disk... а усердно рекламирующий себя OSZ спекся первым (хотя был куплен последним)... ну как спекся... я его слил, с показателем его родной тулы 84% жизни (upd osz 3 года эксплуатации.. интелу 5й пошел... тфу-тфу-тфу.. пишет 100% здоровья/жизни) (upd2 режим эксплуатации - беспощадный был у всех, переезды систем, в зависимости от размера, проживание на всех дисках ранних копий превью вин 10 (их давали в лицензию потом, но это частые апдейты раннего цикла)... бекапы образов дисков и восстановления, взаимные переселения систем... и тд... и ни каких попыток беречь SSD.. )))

    можете попробовать калькулировать бюджет на основе этих советов... RAID10 дает вам ровно 50% рабочего пространства, 100% выживает смерть одного диска, с вероятностью 50% выживает единовременную смерть двух дисков...

    и да - RAID10 - единственный рейд, у которого скорость растет прямо пропорционально количеству дисков.. 16 дисков будет не 2 раза быстрее 8 дисков, там наклон графика, увы, чуть меньше, тем не менее - r10 можно и нужно нашпиговывать дешевыми дисками в большом количестве, она для этого самое то

    ps

    1+ - почему не говорю про "зеркало" из бюджетных SSD под систему - зеркала тупые, к сожалению. они хороши, только когда мрет один из дисков - замена, ребилд зеркала, и все празднуют... если сбой логический - зеркала не всегда способны правильно определить где верная копия... ну то есть... чем дороже контроллер, тем точнее определение... но ни когда 100% гарантии

    для системы - бекапы. просто регулярные бекапы, после каждого изменения в настройках системы. бекап гарантирует что ты поднимаешь вчерашнюю (последнюю рабочую) копию ... на 100% гарантирует... но для бекапов есть еще правила ))) - 3 копии на разных носителях... и тд... но это целая тема

    pps
    "мягким" RAID
    зацепилось, и долго не мог понять чем? вы про софтверный рейд?
    если да, совет - лучше не надо. больше рисков. система глюканула - и транзакции драйвера не завершены...

    уж лучше сразу SSD и продумать систему бекапирования
    Ответ написан
    Комментировать
  • Что изучать .NET программисту?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    или продвинутый десктоп:
    - (в корпоратив) WPF&MVVM&SQL(при чем желательно еще и опыт разных ;)
    - или эксклюзив типа https://ru.wikipedia.org/wiki/OpenCV upd есть отличные обертки
    - или нейросети/(бигдата? но с реальным пониманием) upd имеется в виду добавить в копилку F#, а там связи станут более очевидными ;))
    - или криптография upd блокчейны?
    ... иначе - "заурядные" вебсервисы ))

    .. возможно это вечная проблема - есть люди, которые пытаются учить много, но всега попадают не туда, где это уже нужно.. и есть люди, которые много двигаются, и все время куда то попадают.. и на ходу, доучивают что то еще... (ну и какой то середнячек, со средней степенью везения... к примеру 1С... практически гарантия трудоустройства.. + тошноты от работы ))
    Ответ написан
  • Как вы пишите дебаг? Какие устоявшиеся методики существуют?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    собственная реализация логгера в каждом классе быстро утомит..
    1 - есть https://msdn.microsoft.com/ru-ru/library/system.di... там много готовых инструментов
    2 - можно реализовать свой простейший логгер в виде расширения (в утилитарном статическом классе), пример
    internal static void log(this string txt) => tbLog.AppendText(txt + Environment.NewLine);

    потом очень удобно использовать в любом месте
    $"что то прошло не так, параметры первый {x} и второй {y}".log();

    3 - еще удобные опции компилятора, для конструкций, которые явно не нужны в продакшене
    #if DEBUG
                var sw = new Stopwatch();
                sw.Start();
    #endif
                /// что то делаем
    #if DEBUG
                sw.Stop();
                var ts = sw.Elapsed;
                $"total time '{name_of_action}':".log();
                $"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}".log();
    #endif
    Ответ написан
    Комментировать
  • Как правильно написать метод?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    у вас path содержит имя файла?
    или только целевую папку?
    если содержит:
    File.Delete(path);
    если нет, можно и всю папку зачистить
    foreach (var f in Directory.EnumerateFiles(path, "*.*"))
       File.Delete(f);

    или первый в папке
    File.Delete(Directory.EnumerateFiles(path, "*.*")[0]);

    а можно и папку грохнуть, со всем содержимым (это как раз одобряется вторым параметром)
    Directory.Delete(path, true);
    .. а потом пересоздать... ни когда не задумывался - что быстрее в итоге? ))
    Ответ написан
    Комментировать
  • Знания, которые не устаревают. С чего начать?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    тут чел сообщал (на подобный вопрос), что начал кодить после 50, и встал на ноги (до это был комерсом, одно время успешным, но потом фортуна .. мягко говоря отвернулась)... если память не изменяет - ему сейчас 60, и он с удовольствием, и успешно кодит бек на php

    во всей этой истории, ключевое слова - начать
    Ответ написан
    1 комментарий
  • Почему не пингуется белый ip на Win10 но доступ есть?

    mindtester
    @mindtester Куратор тега Windows
    http://iczin.su/hexagram_48
    пинги до этого ip адреса не идут
    Ответ на пинг зачастую отключен, ибо нефиг.


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

    ps надо достаточно хорошо понимать тему, прежде чем хоть что то менять в этих настройках. совсем кратко - обычно, можно объявить "частной", сеть, под защитой фаервола хотя бы роутера (это предпочтительно для большинства домашних/малых сетей. но тогда влан не лучший инструмент. скорее проброс конкретного порта, но тогда, на пинг, отвечать(не отвечать) будет роутер)
    Ответ написан
    Комментировать