各レコードの各フィールドが固定幅であるレコードでいっぱいのテキスト ファイルがあります。私の最初のアプローチは、単純に string.Substring() を使用して各レコードを解析することです。より良い方法はありますか?
たとえば、フォーマットは次のように記述できます。
<Field1(8)><Field2(16)><Field3(12)>
2 つのレコードを含むサンプル ファイルは次のようになります。
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;