public unsafe void QueSel(DataGridView _dgOut) { int i, k; byte[] wStr; Encoding enc8 = Encoding.UTF8; TbfIn * bfIn = stackalloc TbfIn[1]; byte[] bbfIn = new byte[sizeof(TbfIn)]; FileStream ffIn = File.OpenRead(" C:/Users/Karina/Desktop/2nd year/LnMP/Sample/Cars.dat"); _dgOut.RowCount = 2; i = 0; while (ffIn.Read(bbfIn, 0, bbfIn.Length) == bbfIn.Length) { Marshal.Copy(bbfIn, 0, (IntPtr)bfIn, bbfIn.Length); _dgOut.RowCount = _dgOut.RowCount + 1; wStr = new byte[30]; for (k = 0; k < 30; k++) { wStr[k] = bfIn->Mark[k]; } _dgOut.Rows[i].Cells[0].Value = enc8.GetString(wStr, 0, wStr.Length); _dgOut.Rows[i].Cells[1].Value = bfIn->V.ToString(); _dgOut.Rows[i].Cells[2].Value = bfIn->S.ToString(); i = i + 1; } ffIn.Close(); }
public unsafe void QueSel(DataGridView _dgOut) { int i, k; byte[] wStr; /* байт-массив */ Encoding enc8 = Encoding.UTF8; TbfIn * bfIn = stackalloc TbfIn[1]; /* ссылка на буфер динамической памяти */ byte[] bbfIn = new byte[sizeof(TbfIn)]; /* байт-массив длиной в запись */ FileStream ffIn = File.OpenRead("C:/Users/Karina/Desktop/2nd year/LnMP/Sample/Cars.dat"); // "C:/Users/Student/Desktop/All/Мунерман/Sample/Cars.dat" _dgOut.RowCount = 2; /* с запасом */ i = 0; /* счётчик на 0. */ while (ffIn.Read(bbfIn, 0, bbfIn.Length) == bbfIn.Length) /* пока размер файла равен длине записи */ { Marshal.Copy(bbfIn, 0, (IntPtr)bfIn, bbfIn.Length); /* копируем в динамическую память */ _dgOut.RowCount = _dgOut.RowCount + 1; wStr = new byte[30]; /* размер в "30 строк" */ for (k = 0; k < 30; k++) // пробегаем, { wStr[k] = bfIn->Mark[k]; // начиная с поля Mark } _dgOut.Rows[i].Cells[0].Value = enc8.GetString(wStr, 0, wStr.Length); /* "выводим" содержимое байт-массива */ _dgOut.Rows[i].Cells[1].Value = bfIn->V.ToString(); /* "выводим" содержимое V */ _dgOut.Rows[i].Cells[2].Value = bfIn->S.ToString(); /* "выводим" содержимое S */ i = i + 1; } ffIn.Close(); /* закрыли файл */ }