テキストファイルに書き込む値のセットがあります。
サイズ10のフィールド値があり、フィールドサイズが20に固定されているとすると、次のフィールドが来ると、位置21に挿入され、最初のフィールドの残りの10スペースが空のスペースで埋められます。
誰かがこれがどのように行われるか教えてもらえますか?
この関数strLfix
が最も可能性の高い修正になります。同様の関数strRfix
は、テキストを指定された長さに右揃えします。
また、出力フィールドの区切り文字を空の文字列に設定することを忘れないでください。ここでは、デフォルトの1つの空白スペースは関係ありません。
static void TextIoTest(Args _args)
{
TextIo f = new TextIo(@"C:\Temp\test.txt", 'w');
;
f.outFieldDelimiter('');
f.outRecordDelimiter('\r\n');
f.write( strLfix("abc",20), '|', strRfix("xyz",15), '|', 117);
f.writeExp([strLfix("abc",20), '|', strRfix("xyz",15), '|', 117]);
f.write(); // To force CR NL
}
このジョブは、書き込み用にファイルを開き(既存のファイルを切り捨てるか、新しいファイルを作成し)、フィールドとレコードの区切り文字を設定してから、同じ行を2回書き込みます(2つの異なる呼び出しを使用)。レコード区切り文字を追加する最後の呼び出しwrite
。これは、受信者によって重要な場合と重要でない場合があります。
strrep
、、、substr
を使用できます。strpoke
例をで見つけてください\Classes\VendOutPaymRecord_UK_BACS\output
。