Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы чтения данных из файла. / 2 сообщений из 2, страница 1 из 1
11.08.2017, 10:57
    #39503882
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы чтения данных из файла.
Добрый день, коллеги!
Помогите плиз!

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
        static byte[] ica010(long l1, long l2)
        {
            // создаем объект BinaryFormatter
            BinaryFormatter formatter = new BinaryFormatter();
            byte[] bytePasat;

            using (FileStream fileStream = new FileStream(GLBnam, FileMode.Open))
            {
                fileStream.Seek(l1, SeekOrigin.Begin);
                bytePasat = new byte[l2];
                for (int i = 0; i < l2; i++)
                {
                    bytePasat[i] = (byte) fileStream.ReadByte();
                }
            }
            return bytePasat;
        }

        static void ByteArrayToNewPasat0(byte[] bytes)
        {
            GCHandle handle = GCHandle.Alloc(bytes, GCHandleType.Pinned);
            pasat = (Pasat0)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(Pasat0));
            handle.Free();
        }

        static Pasat0 ByteArrayToStructure<Pasat0>(byte[] bytes) where Pasat0 : struct
        {
            GCHandle handle = GCHandle.Alloc(bytes, GCHandleType.Pinned);
            Pasat0 pasat = (Pasat0)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(Pasat0));
            handle.Free();
            return pasat;
        }

        static void Main(string[] args)
        {
            string put = "Z:\\L_TN\\ALM\\";

            acatconfig_read(put);       // считывание файла acat.cnf
            Console.WriteLine(GLBnam);

            file_name(0, 0);
            Console.WriteLine(GLBnam);

            byte[] bytePasat = ica010((long) 0, (long)Marshal.SizeOf(pasat));
            Pasat0 pasatTest = ByteArrayToStructure<Pasat0>(bytePasat);

            Console.WriteLine("babac");
            Console.ReadKey();
        }


Есть два вопроса:
1) Работает, когда в struct нет параметра
Код: c#
1.
public char[] shu;

.
Как только его добавляю начинаются ошибки.
Делать как тут написано чтобы обойти ошибку?

2) Кодировка, сейчас кодировка файла ANSI. На выходе не совсем то что нужно. Как это исправить?
...
Рейтинг: 0 / 0
12.08.2017, 22:11
    #39504474
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы чтения данных из файла.
vadipok,

надо было ссылку на другую тему дать.

Тебе нужны Буферы фиксированного размера . Вместо char будут byte.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы чтения данных из файла. / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]