У меня есть текстовый файл, полный записей, где каждое поле в каждой записи имеет фиксированную ширину. Мой первый подход заключается в том, чтобы проанализировать каждую запись, просто используя 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;