VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -