ソース ファイルからデータを取得し、一連の区切りレコードをターゲット ファイルに書き込む、会社用のファイル トランスレータを作成しています。レコードの形式は次のとおりです。
ヘッダー*REC 1*REC 2*REC 3*REC 4
レコードが空で、その後に別のレコードがある場合、値は出力されませんが、区切り文字は含まれます。
ヘッダー*REC 1**REC 3*REC 4
レコードが空で、シリーズの最後のレコードである場合、値と区切り文字は省略されます。次に例を示します。
ヘッダー*REC 1*REC 2*REC 3
(疑似コード) 以外のコードでこれを記述する良い方法を考えようとしていました。
if last record is empty
print this
otherwise
print this other thing
コードはそれほど醜くはないと思いますが、より良い解決策が欲しいです。StringBuilder を使用して各トランザクションのデータを書き込んでいます (レコードの各セットはトランザクションに対応するため、TransactionSet オブジェクトを反復処理できます)。可能であれば、大量の switch/if ステートメントを避けるようにしています。これを行うためのより優れた、またはエレガントな方法を誰かが知っている場合は、ぜひ聞いてください。
編集:疑似コードの明確化されたブロック