powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы чтения данных из файла.
2 сообщений из 2, страница 1 из 1
Проблемы чтения данных из файла.
    #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
Проблемы чтения данных из файла.
    #39504474
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok,

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

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


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