Использование подстроки или чтение данных в Struct - лучший и безопасный код? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть текстовый файл с почти 220 столбцами для чтения, а затем выводится текстовый файл с другим форматом.

Для программы ac # .net;я пытаюсь исследовать, что будет лучше и безопаснее при использовании Substring для чтения строки и чтения значений столбца в переменных с использованием индекса и длины или чтения строки в struct

Using Stuct

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct MyStruct
    {
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)] public string first_col;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)] public string second_col;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 12)] public string third_col;
    }


    public void readData(string line)
    {
        string buffer = line;
        IntPtr pBuf = Marshal.StringToBSTR(buffer);
        MyStruct ms = (MyStruct)Marshal.PtrToStructure(pBuf, typeof(MyStruct));


        Console.Write("first_col: {0}", ms.first_col);
        Console.Write("second_col: {0}", ms.second_col);
        Console.Write("third_col: {0}", ms.third_col);


        Marshal.FreeBSTR(pBuf);
    }

Использование подстроки

   using (System.IO.StreamReader file = new System.IO.StreamReader(FilePath))
            {

                while(file.Peek() != -1)
                {
                        CurrentLine = file.ReadLine() + "\r\n";
                        linecount++;

                    //skip the header and footer
                    if (linecount > 1 && CurrentLine.Contains("END") != true) 
                    {
                        //sw.WriteLine(CurrentLine);

                        readData(CurrentLine);
                   }
               }
           }
...