Задать вопрос
  • Как узнать, поддерживает ли MB+CPU серверную память?

    @SmeliyR Автор вопроса
    "А зачем ставить ECC память, да ещё и регистровую, на хуанань - это совсем непостижимо."


    Ziptar, ну хуанан же вроде как берут те, кто хотят сэкономить за счёт того что серверная память и серверные процессоры типа Xeon невероятно дёшевы. Так что мне кажется, как раз хунан и берут для дешевых бушных серверных комплектующих.
    Написано
  • Есть ли тут кто нибудь, кто работал с визуальным представлением больших графов (~3000 вершин)?

    @SmeliyR Автор вопроса
    отмечу решением!
    пришлось немного подпилить генератор графа, чтобы покрасивше выглядел в ГрафВиз, затем сохранил
    в SVG и навигируюсь по картинке через Chrome (тормозов почти нет, поиск есть).

    Вот граф https://dropmefiles.com/7Tj41
    , он из другой моей темы "Есть в графическом виде дерево иерархии классов .net?"
    Есть в графическом виде дерево иерархии классов .net?
    Написано
  • Есть в графическом виде дерево иерархии классов .net?

    @SmeliyR Автор вопроса
    В общем проанализировал ВоидВолкера и
    начал копать в сторону AppDomain.CurrentDomain.GetAssemblies()
    Во втором .Net Framework не нашлось ф-ции
    Type.GetInheritanceHierarchy().Reverse();
    (ну или я не нашёл)
    но прямо в MSDN
    нашёл Type.BaseType.

    В итоге код генерации получился такой.
    Ещё я так понял, что Assemblies - это то, что я указываю в Project -> Add reference
    и чтобы получить максимум классов, мне придётся там вручную добавлять все предлагаемые reference

    Кстати, в этой теме генерирую визуальное представление через GraphViz
    https://qna.habr.com/q/1391774?e=14889558#comment_...

    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.Text;
    using System.Reflection;
    using System.IO;
    
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace myClassesTreeGen
    {
        class Program
        {
            static void printMembers(Type asmType) {
                // check for static ones first
                MemberInfo[] members = asmType.GetMembers();
    
                
    
                foreach (MemberInfo member in members)
                {
                    Console.WriteLine("Found " + member.MemberType + ":  " +
                        member.ToString() + " IN " +
                        member.DeclaringType.FullName);
                }
            }
            static void Main(string[] args)
            {
                Dictionary<String, int> vertexNumbers = new Dictionary<string, int>();
                Dictionary<int, String> vertexNames = new Dictionary<int, String>();
                Dictionary<int, int> vertexDepth = new Dictionary<int, int>();
                
                Dictionary<String, String> vertexParents = new Dictionary<String, String>();
                Dictionary<int, int> vertexParentsByNum = new Dictionary<int, int>();
                
    
                //Make an array for the list of assemblies.
                Assembly[] assems = AppDomain.CurrentDomain.GetAssemblies();
    
                //List the assemblies in the current application domain.
                Console.WriteLine("List of assemblies loaded in current appdomain:");
                int counter=0;
                foreach (Assembly assem in assems)
                {
                    Console.WriteLine(assem.FullName);
                    Type[] types = assem.GetTypes();                
                    foreach (Type t in types) 
                        if (t.IsClass) 
                                //if (t.ToString()=="System.Type") 
                        {
                            //Console.WriteLine(" ===============================================================\n" + t.ToString());//t.GetGenericTypeDefinition().ToString()+
                            //Console.WriteLine(" ===============================================================\n");
                            //printMembers(t)
                            int value;                        
                            if (!vertexNumbers.TryGetValue(t.ToString(),out value))
                            {
                                vertexNumbers.Add(t.ToString(), counter);
                                vertexNames.Add(counter, t.ToString());
                                if (t.BaseType != null )
                                    vertexParents.Add(t.ToString(), t.BaseType.ToString() );
                            }
                            //Console.WriteLine((t.BaseType!=null?t.BaseType.ToString():"")+" --> "+t.ToString());
                            counter++;
                            
                            
                        }
                }
                int i;
                foreach (KeyValuePair<String, String> de in vertexParents) {
                   // Console.WriteLine("{0}->{1}", de.Key, de.Value);
                    if (vertexNumbers.TryGetValue(de.Value, out i))
                        vertexParentsByNum.Add(vertexNumbers[de.Key], vertexNumbers[de.Value]);
                }
     
    
                
    
                StreamWriter fout = new StreamWriter(@"E:\!\NETCODE_CSharp\graph.dot");
    
                fout.WriteLine("digraph {");
                fout.WriteLine("  rankdir = LR; ");
                
    
                foreach (KeyValuePair<int, String> de in vertexNames) //if (allowedVertex[de.Key] != null)
                {
                    fout.WriteLine("  T{0}[label=\"{1}\"]", de.Key, de.Value);
    
                }
    
                ///////////////// узлы корневые ////
                int rootCount = 0;
                const int rootStart = 10000;
                foreach (KeyValuePair<int, int> de in vertexParentsByNum) if (de.Value == 0) rootCount++;            
                for (int j = 0; j < rootCount; j++)
                {
                    fout.WriteLine("  T{0}[label=\"{1}\"]", rootStart + j, "System.Object");
                }
    
                ///на одном уровне их!
                fout.WriteLine("{ rank=same;");
                foreach (KeyValuePair<int, int> de in vertexParentsByNum) if (de.Value==0)
                {
                    fout.WriteLine("            T{0};", de.Key);
                }
                fout.WriteLine("}");
    
                //все пары
                counter = 0;
    
                foreach (KeyValuePair<int, int> de in vertexParentsByNum)
                {
                    fout.WriteLine("            T{0} -> T{1}", de.Value == 0 ? rootStart + (counter++) : de.Value, de.Key);
                }
                fout.WriteLine(" }");
                fout.Close();
                Console.WriteLine("Vertex count: {0}", vertexNames.Count);
                //Console.WriteLine("Edges count: {0}", vertexParents.Count);
                Console.ReadLine();
                           
    
            }
        }
    }
    Написано
  • Как включить моментальную перезагрузку при BSOD на WINDOWS10?

    @SmeliyR Автор вопроса
    Это чё за бред - почему отмечено решением, если оно таковым не является? Восстание ИИ чтоли?))
    Написано
  • Как включить моментальную перезагрузку при BSOD на WINDOWS10?

    @SmeliyR Автор вопроса
    Владислав Лысков, проблем нет никаких, BSOD вызывается искуственно как раз с целью мнгновенного ребута.
    Написано
  • Как включить моментальную перезагрузку при BSOD на WINDOWS10?

    @SmeliyR Автор вопроса
    maaGames, флажок снят.
    Предыдущие версии Windows, кстати, по моему моментально перезагружались.
    Написано
  • Есть в графическом виде дерево иерархии классов .net?

    @SmeliyR Автор вопроса
    VoidVolker, студии 2022 пока нет под рукой ((
    Девятый подойдет потому что скорее всего классы, которые есть во втором - есть и в 9-м и более менее их структура я думаю не изменилась (Во всяком случае те, которые мне интересны...)
    Написано
  • Хорошо ли распознают современные версии FineReader по сравнению со старыми?

    @SmeliyR Автор вопроса
    pavlik 322, очевидно, уменьшить количество ручных правок. (Ессно, не свести их к нулю, а умеьншить). Ситуаций, когда человек читает текст c листа, а FineReader 9.0 выдаёт в этом же месте кракозябру - вполне достаточно. Хотя бы даже распознать криво положенный на сканер листок - задача вполне машинно решаемая имхо.
    Написано
  • Есть в графическом виде дерево иерархии классов .net?

    @SmeliyR Автор вопроса
    VoidVolker, ок, а просто запустить у себя и скинуть сюда
    результирующий chart.txt можете? Очень помогло бы =)

    ===============
    Кстати, вот какие ошибки выдаёт IDE, если вдруг интересно))
    67a2dfc7d1a08830201346.jpeg
    67a2dfd680dc1041001473.jpeg
    67a2e012f3c62275941895.jpeg
    Написано
  • Есть в графическом виде дерево иерархии классов .net?

    @SmeliyR Автор вопроса
    любая версия C#, доступная в VS 2005 =))
    .net framework 2.0
    Написано
  • Как запустить две разных копии приложения под windows10?

    @SmeliyR Автор вопроса
    SmeliyR, Нашёл!
    если нужен не одновременный запуск а по очереди то

    открываем путь
    [systemDrive]:\Users\[userName]\AppData\Local\Packages\[appName]
    там хранятся все файлы приложения
    архивируем их и удаляем, кидаем на их место такие же файлы от второй копии и пользуемся второй копией, затем снова так же меняем на первую копию.

    Насчёт реестра только пока не знаю, как это работает.
    Написано
  • Есть в графическом виде дерево иерархии классов .net?

    @SmeliyR Автор вопроса
    В VS2005 сей код не запускается ((
    Можно ли его как то видоизменить, чтоб заработал под VS2005 или же тут используется что то из конструкций языка, что в той древней версии C# ещё не существовало?
    Ну или может запустите у себя и скинете мне текстовичек, который оно выведет?
    Написано
  • Как копию вывода BAT файла отправлять в файл?

    @SmeliyR Автор вопроса
    Итого, создаём файл batproc.ps1
    c содержимым
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("windows-1251") 
    foreach ($arg in $args) {
        &  $arg | tee  log.txt -append
    }


    а в контесктное меню windows файлов BAT добавляем пункт Запустить с помощью данного ps1-скрипта

    Из особенностей - цветной вывод в консоль от yt-dlp, перестаёт работать - такие строки выводятся без расцветки и друг за другом.
    Написано
  • Как копию вывода BAT файла отправлять в файл?

    @SmeliyR Автор вопроса
    SmeliyR,
    Нашёл!
    В общем если внутри 2.bat содержатся вызовы yt-dlp
    и перед тем как дать poweshell'у команду
    & .\2.bat | tee test.log -append
    предварительно дать команду
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("windows-1251")
    то вывод и в файл и на экран становится без кракозябр! (по крайней мере в названиях видеороликов)
    Написано
  • Как копию вывода BAT файла отправлять в файл?

    @SmeliyR Автор вопроса
    SmeliyR, при это команда вида
    & .\2.bat | tee test.log -append -Encoding UTF-8
    или
    & .\2.bat | tee test.log -append -Encoding WINDOWS-1251
    проблему не решает
    Написано
  • Как копию вывода BAT файла отправлять в файл?

    @SmeliyR Автор вопроса
    SmeliyR, Что интересно ,
    в команде & yt-dlp <адрес видео> | tee test.log -append кракозябрятся названия видеороликов, которые качает yt-dlp, а текст ошибок, которые он же выдаёт - нормально видно.
    При этом в том же окне повершелл команда yt-dlp <адрес видео> всё выдаёт без кракозябр.
    Странно конечно...
    Написано
  • Как копию вывода BAT файла отправлять в файл?

    @SmeliyR Автор вопроса
    Евгений Хлебников, да, вы правы, получается я зря отсюда https://github.com/dEajL3kA/tee-win32/releases
    EXE-шник скачивал.

    В ходе эксперимента выяснил, что если запустить PowerShell и дать команду yt-dlp <адрес видео>, то вывод на экран идёт в нормальной кодировке, но если дать команду

    & yt-dlp <адрес видео> | tee test.log -append

    то как в файл так и на экран выводятся кракозябры. значит кириллицу ломает именно Powershell tee-object
    осталось разобраться как это чинится...
    Написано