visual basic 6.0のファイルへの出力の件でお尋ねします。print関数を使って複数行を出力したい場合、一行ごとに

print #1,”文字列”
のように書くよりほか方法はないでしょうか。ヒアドキュメントなどはないのでしょうか。
よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:rafile No.1

回答回数662ベストアンサー獲得回数24

ポイント28pt

ヒアドキュメントのような形式は聞いたことがないですね。

CRLF=chr(13)+chr(10)

print #1,”1行目”&CRLF&”2行目”&CRLF&”3行目”&CRLF&”4行目”

ではだめでしょうか?


(たしか、vb_crlfみたいな既存のがあったような気もしますが。

id:hiko15

迅速な回答ありがとうございません。

できれば1行ごとに&CRLF&をいれたくないです。結局print ”1行目” print ”2行目”とあまりかわらないように思えてしまうので

2006/02/07 02:40:27
id:zifree No.2

回答回数175ベストアンサー獲得回数6

ポイント28pt

http://www.bcap.co.jp/hanafusa/VBHLP/FSO01.htm

FileSystemObject オブジェクトについて

FileSystemObjectが使える環境であればOpenやPrintを使ってファイルを書き込むよりTextStreamオブジェクトを使う方がスマートです。

「プロジェクト」→「参照設定」でMicrosoft Scripting Runtimeにチェックを入れる必要があります。

ファイルを開いてhelloと書き込むには以下のようにします。


Dim fs As New FileSystemObject

Dim ts As TextStream

Set ts = fs.OpenTextFile(AppPath & ”test.txt”, ForWriting)


ts.WriteLine (”hello”)


ts.Close

Set ts = Nothing

Set fs = Nothing

http://support.microsoft.com/default.aspx?scid=kb;ja;186118

Visual Basic で FileSystemObject を使用する方法

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_040.html

VBA応用(テキストデータの書き出し)

VBAでの例ですが、Open・Printを使ったファイル読み書きとFileSystemObject・TextStreamを使ったファイル読み書きの比較です。

id:hiko15

ありがとうございます。

2006/02/07 02:44:15
id:nobutaku No.3

回答回数4ベストアンサー獲得回数0

ポイント27pt

URLはダミーです。

はずしてたらごめんなさい


こういう風に出力したい文字列を

vbcrlf で区切ってあげれば

1回のPrintメソッドで出力できますが。


Private Sub CommandButton1_Click()

Open ”C:¥TEST.TXT” For Output As #1

Print #1, ”AAA” & vbCrLf & ”BBB”

Close #1

End Sub

id:hiko15

一番最初に回答をくださった方と同じ考えかたでしょうか。やはりこのような方法が一般的なのですね。

2006/02/07 02:46:18
id:olo No.4

回答回数80ベストアンサー獲得回数1

ポイント27pt

もし、大量の行を出力する場合、& を使えば使うほど遅くなります。

ループ処理でvbCRLFの連結は危険です。

printを一行ごとに書いた方が高速です。

MID関数を使って文字列を連結する手法を用いれば、一回のprintでも大丈夫ですが。

ケースによっては100倍ぐらいスピードが変わります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません