Необходимо считать матрицу с бинарного файла (расширение .dat ) где первые два элемента идут целые числа указывающие количество строк и столбцов а затем элементы построчно. Прошу помощи
Я предполагаю что тебя интересует сериализация.
То есть ты сначала сохраняешь данные, а потом считываешь их.
То есть ты создаешь свой личный класс
[Serializable]
public MyBinaryClass
{
//заполняешь всем, что тебе нужно
}
А потом используешь
public static class Serializator
{
public static void Serialize(string pathOrFileName, object objToSerialise)
{
using (Stream stream = File.Open(pathOrFileName, FileMode.Create))
{
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(stream, objToSerialise);
}
}
public static T Deserialize<T>(string pathOrFileName)
{
T items;
using (Stream stream = File.Open(pathOrFileName, FileMode.Open))
{
BinaryFormatter bin = new BinaryFormatter();
items = (T) bin.Deserialize(stream);
}
return items;
}
}
следующим образом:
MyBinaryClass someMatrix = new MyBinaryClass();
Serializator.Serialize("data.dat", someMatrix);//пример сохранения
someMatrix = Serializator.Deserialize<MyBinaryClass >("data.dat");//пример подгрузки
PS: если файл УЖЕ существует, то это скорее всего не сработает.
С выше описанного ТЗ сделал предположения:
public static Int32[,] ReaderArray(String path)
{
Int32[,] a = null;
// создаем объект BinaryReader
using (BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open)))
{
// пока не достигнут конец файла
// считываем каждое значение из файла
while (reader.PeekChar() > -1)
{
var n = reader.ReadInt32();
var m = reader.ReadInt32();
a = new Int32[n, m];
for (Int32 i = 0; i < a.GetLength(0); i++)
{
for (Int32 j = 0; j < a.GetLength(1); j++)
{
a[i, j] = reader.ReadInt32();
}
}
}
}
return a;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости