人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

visual basic 6.0のファイルへの出力の件でお尋ねします。print関数を使って複数行を出力したい場合、一行ごとに
print #1,”文字列”
のように書くよりほか方法はないでしょうか。ヒアドキュメントなどはないのでしょうか。
よろしくお願いいたします。

●質問者: hiko15
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:print Visual Basic ドキュメント ファイル 文字列
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● rafile
●28ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

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

CRLF=chr(13)+chr(10)

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

ではだめでしょうか?


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

◎質問者からの返答

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

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


2 ● zifree
●28ポイント

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を使ったファイル読み書きの比較です。

◎質問者からの返答

ありがとうございます。


3 ● のぶ
●27ポイント

http://www.goo.ne.jp/

goo

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

◎質問者からの返答

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


4 ● olo
●27ポイント

http://www.google.co.jp/search?hl=ja&q=MID%24+%E6%96%87%E5%A...

Google

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

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ