Member 14120682 Ответов: 1

Не удается преобразовать int в system.iformatprovider


Не удается преобразовать int в system.iformatprovider

Что я уже пробовал:

textData = File.ReadAllBytes(@"C:\Users\Admin\Desktop\k1.txt");

           int[] intArray = new int[textData.Length];

           for (int i = 0; i < textData.Length; i++)
           {
               intArray[i] =Convert.ToInt16(textData[i],16);
           }

1 Ответов

Рейтинг:
2

OriginalGriff

Похоже, вы пытаетесь преобразовать каждый байт в целое число, предполагая, что каждый байт содержит значение от "0" до "9" включительно.
Если так, то это будет сделано:

int[] intArray = new int[textData.Length];

for (int i = 0; i < textData.Length; i++)
    {
    byte b = textData[i];
    if (b >= (byte)'0' && b <= (byte)'9')
        {
        intArray[i] = (int)(b - '0');
        }
    }


Member 14120682

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

OriginalGriff

Затем добавьте также шестнадцатеричные значения:

for (int i = 0; i < textData.Length; i++)
    {
    byte b = textData[i];
    if (b >= (byte)'0' && b <= (byte)'9')
        {
        intArray[i] = (int)(b - '0');
        }
    if (b >= (byte)'A' && b <= (byte)'F')
        {
        intArray[i] = (int)((b - 'A') + 10);
        }
    }