У меня есть текстовый файл, полный записей, где каждое поле в каждой записи является фиксированной шириной. Моим первым подходом было бы проанализировать каждую запись, просто используя string.Substring(). Есть ли способ лучше?
Например, формат можно охарактеризовать как:
<Field1(8)><Field2(16)><Field3(12)>
И пример файла с двумя записями может выглядеть так:
SomeData0000000000123456SomeMoreData
Data2 0000000000555555MoreData
Я просто хочу убедиться, что я не упускаю из виду более элегантный способ, чем Substring().
Обновление: Я в конечном итоге пошел с регулярным выражением, например Killersponge:
private readonly Regex reLot = new Regex(REGEX_LOT, RegexOptions.Compiled);
const string REGEX_LOT = "^(?<Field1>.{6})" +
"(?<Field2>.{16})" +
"(?<Field3>.{12})";
Затем я использую следующее для доступа к полям:
Match match = reLot.Match(record);
string field1 = match.Groups["Field1"].Value;