投稿時間:2003/03/09(Sun) 15:36 投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:Re: テキストファイルの改行コードについて
相手側は、何を改行コードとみなしているのか? 現在は、どのような方法でテキストファイルを生成しているのか? それによって回答は変わってくるでしょう。
とりあえず今回は、Print#ステートメントによる出力だと仮定して回答します。
> 何とか改行コードを入れずにテキストファイルに複数行書き込む事はVBではできないでしょうか。 複数行のデータを出力させようとしているのに、 改行コードは含めない……というのは、何か矛盾していませんか?(^^;)
とりあえず、Windowsでの改行は、通常、「CRLF」ですから、 Print #FNo, "AAA,BBB,CCC,DDD,EEE" Print #FNo, "FFF,GGG,HHH,III,JJJ" という出力は、 (\rが改行[CR]、\nが復帰[LF]) AAA,BBB,CCC,DDD,EEE\r\nFFF,GGG,HHH,III,JJJ\r\n という結果を生む事になります。
ですから、もし、Unix側が「LF改行」の設定になっているのであれば、 > 例:(^Mが改行コード) > AAA,BBB,CCC,DDD,EEE^M > FFF,GGG,HHH,III,JJJ^M のように見えてしまうかもしれませんね。 Unix側がCR改行なのか、LF改行なのか、CRLF改行なのかを調べておいてください。 (多分、LF改行だとは思いますけれど)
で。改行の出力を抑制したいのであれば、 Print #FNo, "AAA,BBB,CCC,DDD,EEE"; Print #FNo, "FFF,GGG,HHH,III,JJJ"; のように、最後にセミコロンを付加すればOKです。 ただしこれでは、CRもLFも送られませんから、必要に応じて、 Print #FNo, "AAA,BBB,CCC,DDD,EEE"vbLf; Print #FNo, "FFF,GGG,HHH,III,JJJ"vbLf; のように、自分で改行コードを送出してやる必要があります。
あるいは、改行コードを任意に選択できるようなオブジェクトを使うことです。
例えば、ADOのStreamオブジェクトは、LineSeparatorプロパティを使うことで、 改行コードを CR、LF、CRLF の3種から選択する事ができるようになっています。 http://www.microsoft.com/japan/msdn/library/ja/jpado260/htm/mdobjstream.asp
|