У меня есть текстовый файл с почти 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);
}
}
}