iとUnixの間でXMLを使用する
Question
XML をビルドして、HTTP 経由でクライアントと XML メッセージを交換しています。XML のビルドには EXPAT を使用しています (Scott Klement 氏のおかげです)。XML は (Scott の別のユーティリティーを使用して) 部分的にストリーム・ファイルの MD5 ハッシュにしています。
問題というのは、XML の受信側で Unix を使用しているため、送信されてくるどのファイルにも CRLF が含まれていません。その代わり LF が含まれています。このメソッド (ファイルには CRLF がなく LF だけ) を使用してファイルをビルドして (その上にハッシュを作成する) よう要求してきました。そうしないと、ハッシュ値が互いに一致しないのです。
どうするのが最善の方法だと思いますか。単なるコード ・ページの問題なのでしょうか。WrtHtmlToStmf を行うときに何か別のものを指定するべきでしょうか。それとも、ストリーム・ファイルについて CRLF を LF に変換するユーティリティーはあるのでしょうか。
Answer
これは Qshell cat コマンドで可能です。
cat file1 >file2
「>」が「redirect output」記号になっており、cat は file1 を読み取り、それを file2 にコピーしています。cat ユーティリティーは、CR/LF または LF 単独のどちらかで行を終了できると認識しているようで、いずれかの区切り文字で入力レコードを受け入れます。しかし、Qshell はファイルを書き込むとき、Qshell (および Unix) 標準にしたがって LF 文字だけを使用してレコードを終了させます。
CL プログラムから cat コマンドを実行するには、次のようにそのコマンドを文字列として QSH CL コマンドに渡します。
QSH CMD('cat file1 >file2')