C # читать в файл, используя шестнадцатеричные отпечатки FFFFFF - PullRequest
0 голосов
/ 16 мая 2011

очень смущен этим, когда я читаю в файле, используя приведенный ниже код, когда он доходит до конца, он печатает FFFFFF, может кто-нибудь объяснить мне, что текстовый файл содержит только цифры и буквы?Любая помощь будет самой благодарной!

        String fileDirectory = "C:\\t.txt";
        StreamReader reader = new StreamReader(fileDirectory);

        int hexIn;

        for (int i = 0; (hexIn = reader.Read()) != -1; i++)
        {

            String s;
            s = hexIn.ToString("X2");
            int x = 0;
            while (x < 1)
            {
                hexIn = reader.Read();
                s = hexIn.ToString("X2");
                x++;
            }
            hexIn = reader.Read();
            s = hexIn.ToString("X2");
            MessageBox.Show(s);

        }

Ответы [ 2 ]

3 голосов
/ 16 мая 2011

У вас есть три Read вызова за итерацию цикла, что означает, что любой из них может вернуть -1, чтобы указать конец файла. Я подозреваю, что тогда он конвертируется в FFFFFFFF, отсюда и ваш вывод. Почему у вас более одного Read звонка? И почему вы не читаете блок за раз?

0 голосов
/ 23 июня 2011

FFFFFF также может указывать пустое значение.Если вы отредактировали Hex от Nintendo DS Roms, вы увидите целую кучу FFFFFFFF в конце, которая помещена туда, потому что игра слишком мала для картриджа, так что на самом деле файл может иметь пустые значения в конце.

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