Тема: Я не можу зчитати масив байт у двовимірний масив...
Хай. От дивіться, є матриця (квадратна) з однотипними даними. Я записую неї в бінарний файл. А як потім зчитати ці дані назад в матрицю?
Деякі дані, матриця повинна бути 400х400 елементів, кожен з елементів займає 2 байти. Ось мій варіант.
class Program
{
private static ushort[,] map;
static void Main(string[] args)
{
byte[] buff = File.ReadAllBytes(Directory.GetCurrentDirectory()+"\\map.map");
Console.WriteLine(buff.Length);
int max = int.MinValue;
int height = 0, i1 = 0, j1 = 0;
map = new ushort[400,400];
for (int i = 0; i < 400; i++)
{
for (int j = 0; j < 400; j++)
{
map[i, j] = BitConverter.ToUInt16(buff, i*400 + j*2);
}
}
while (true)
{
Show();
}
Console.Read();
}
private static void Show()
{
Console.Write("Insert x: ");
int x = int.Parse(Console.ReadLine());
Console.Write("Insert z: ");
int z = int.Parse(Console.ReadLine());
Console.WriteLine(map[x,z]);
}
}
І він не працює. Скажу навіть більше, коли я перебрав всі елементи цієї матриці з метою знайти найбільший. То знайдене значення не було найбільшим насправді. Але коли я просто перебирав байти в одному циклі, переводив в число і порівнював, то знайшлося вірне максимальне значення. Одже проблема в занесенні даних в двовимірний масив. Але я не зовсім розумію, в чому проблема.