Пример #1
0
        private void CalculateEncoding()
        {
            var idP          = _tablet.getProductId();
            var encodingFlag = (encodingFlag)_protocolHelper.simulateEncodingFlag(idP);

            if ((encodingFlag & (encodingFlag.EncodingFlag_16bit | encodingFlag.EncodingFlag_24bit)) != 0)
            {
                if (_tablet.supportsWrite())
                {
                    _useColor = true;
                }
            }
            if ((encodingFlag & encodingFlag.EncodingFlag_24bit) != 0)
            {
                _encodingMode = _tablet.supportsWrite()
                    ? encodingMode.EncodingMode_24bit_Bulk
                    : encodingMode.EncodingMode_24bit;
            }
            else if ((encodingFlag & encodingFlag.EncodingFlag_16bit) != 0)
            {
                _encodingMode = _tablet.supportsWrite()
                    ? encodingMode.EncodingMode_16bit_Bulk
                    : encodingMode.EncodingMode_16bit;
            }
            else
            {
                _encodingMode = encodingMode.EncodingMode_1bit;
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("width : " + Console.WindowWidth.ToString() + "height : " + Console.WindowHeight.ToString());
            while (Console.WindowWidth < 100 || Console.WindowHeight < 20)
            {
                Console.WriteLine("width : " + Console.WindowWidth.ToString() + "height : " + Console.WindowHeight.ToString());
                Console.Write("increase the windows size then press enter.\nmin width : 100 , min height : 20");
                Console.ReadLine();
            }
            //menu(new string[] { "item 1","item 2","item 3","item 4" },"select an item then press enter")
            createArray();
            string fileName = "";

            if (args.Length != 0 && File.Exists(args[0]))
            {
                fileName = args[0];
            }
            else
            {
                do
                {
                    Console.Write("Enter file name : ");
                    fileName = Console.ReadLine();
                    if (fileName.StartsWith("'") || fileName.StartsWith("\""))
                    {
                        fileName = fileName.Substring(1);
                    }
                    if (fileName.EndsWith("'") || fileName.EndsWith("\""))
                    {
                        fileName = fileName.Substring(0, fileName.Length - 1);
                    }
                } while (!File.Exists(fileName));
            }
            Console.Clear();
            Console.Title = "H : help, file name : " + fileName;
            FileStream fs = new FileStream(fileName, FileMode.Open);

            if (fs.Length <= 999999999)
            {
                long k    = 0;
                bool exit = false;
                while (!exit)
                {
                    //Console.Write(fixSize(k.ToString(), 9));
                    fs.Position = k;
                    Console.Clear();
                    for (int l = 0; l < Console.WindowHeight; l++)
                    {
                        Console.Write(fixSize((fs.Position + 1).ToString(), 9) + ":");
                        byte[] by = new byte[30];
                        int    rl = fs.Length - 1 - fs.Position < 30 ? (int)(fs.Length - 1 - fs.Position) : 30;
                        fs.Read(by, 0, rl);
                        for (int i = 0; i < rl; i++)
                        {
                            Console.Write(fixSize(hex[by[i]], 3));
                        }
                        if (Console.WindowWidth > 130)
                        {
                            Console.Write('|');
                            switch (encMode)
                            {
                            case encodingMode.utf8:
                                Console.Write(replaceenter(UTF8Encoding.UTF8.GetString(by, 0, 30)));
                                break;

                            case encodingMode.utf16:
                                Console.Write(replaceenter(UnicodeEncoding.Unicode.GetString(by, 0, 30)));
                                break;

                            case encodingMode.ascii:
                                Console.Write(replaceenter(ASCIIEncoding.ASCII.GetString(by, 0, 30)));
                                break;
                            }
                        }
                        if (l < Console.WindowHeight - 1)
                        {
                            Console.WriteLine();
                        }
                    }
                    ConsoleKeyInfo ck = Console.ReadKey(true);
                    if (ck.Key == ConsoleKey.DownArrow)
                    {
                        k += linesPerScroll * 30;
                        if (k > fs.Length - 1)
                        {
                            k = fs.Length - 1;
                        }
                    }
                    else if (ck.Key == ConsoleKey.UpArrow)
                    {
                        k -= linesPerScroll * 30;
                        if (k < 0)
                        {
                            k = 0;
                        }
                    }
                    else if (ck.Key == ConsoleKey.Home)
                    {
                        k = 0;
                    }
                    else if (ck.Key == ConsoleKey.End)
                    {
                        k = fs.Length - Console.WindowHeight * 30;
                        if (k < 0)
                        {
                            k = 0;
                        }
                    }
                    else if (ck.Key == ConsoleKey.PageUp)
                    {
                        k -= Console.WindowHeight * 30;
                        if (k < 0)
                        {
                            k = 0;
                        }
                    }
                    else if (ck.Key == ConsoleKey.PageDown)
                    {
                        k += Console.WindowHeight * 30;
                        if (k > fs.Length - 1)
                        {
                            k = fs.Length - 1;
                        }
                    }
                    else if (ck.Key == ConsoleKey.Tab)
                    {
                        switch (menu(new string[] { "back", "goto", "open another file", "lines per scroll", "Text Encoding Mode", "Exit" }, "select an item then press enter\n"))
                        {
                        case "back":

                            break;

                        case "goto":
                            Console.Clear();
                            Console.Write("Enter byte number : ");
                            long bn = 0;
                            if (long.TryParse(Console.ReadLine(), out bn))
                            {
                                bn -= 1;
                                if (bn < fs.Length && bn > -1)
                                {
                                    k = bn;
                                }
                            }
                            break;

                        case "open another file":
                            string fname = "";
                            Console.Clear();
                            do
                            {
                                Console.Write("Enter file name : ");
                                fname = Console.ReadLine();
                            } while (!File.Exists(fname));
                            fileName = fname;
                            fs.Close();
                            fs            = new FileStream(fileName, FileMode.Open);
                            Console.Title = "press tab to open menu ,file name : " + fileName;
                            k             = 0;
                            break;

                        case "lines per scroll":
                            Console.Clear();
                            Console.Write("Enter a number : ");
                            int ln = 0;
                            if (int.TryParse(Console.ReadLine(), out ln))
                            {
                                linesPerScroll = ln;
                            }
                            break;

                        case "Text Encoding Mode":
                            string answer = menu(new string[] { "UTF-8", "ASCII", "UTF-16" }, "select an item then press enter\n");
                            if (answer == "UTF-8")
                            {
                                encMode = encodingMode.utf8;
                            }
                            else if (answer == "ASCII")
                            {
                                encMode = encodingMode.utf8;
                            }
                            else if (answer == "UTF-16")
                            {
                                encMode = encodingMode.utf16;
                            }
                            break;

                        case "Exit":
                            fs.Close();
                            System.Diagnostics.Process.GetCurrentProcess().Kill();
                            break;
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("file is very big");
                Console.ReadLine();
                fs.Close();
                System.Diagnostics.Process.GetCurrentProcess().Kill();
            }
        }