アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください!お願いします。

VB6を使って、複数のテキストファイル(~.txtで保存しているもの)を
一つずつ読み込んで、それらを結合して1つのファイルにして
リッチテキストボックスに表示する、というツールを作成しています。

一応うまく出来たのですが、ただ、結合した時にそれぞれのテキストの
間にどうしても1行ブランクが入ってしまうんです。
このブランク行を削除して、結合したファイルの継ぎ目がきれいに
続いて表示されるようにする方法はありますでしょうか?
ブランク行を全て削除してしまうのではなく、ファイルとファイルの
間に挿入されてしまうブランク行だけをなくしたいのです。

ちなみに

Open App.Path & "\" & List1.List(List1.ListIndex) For Input As #FileNum
Do Until EOF(FileNum)
Line Input #FileNum, ddd
gggg = gggg & ddd & vbCrLf
Loop
Close #FileNum

このようにリストに載っているテキストファイルを全部読み込んで、

If Dir(書き出すテキストファイル) = "" Then
Open 書き出すテキストファイル For Output As #FileNum
Print #FileNum, gggg
Close #FileNum
Else
Open 書き出すテキストファイル For Append As #FileNum
Print #FileNum, gggg
Close #FileNum
End If

書き出すファイルが存在しなければそのまま保存し、書き出すファイルが
あれば、そのファイルに追記するというコードにしています。

A 回答 (1件)

実際に動かしてみたのではないのですが、コードを見たところ、読み込み時にリターンコードを追加しているにも関わらず保存しているところで、Print文の最後にセミコロンが入っていないので自動的にさらにリターンコードが入っているようです。



Print #FileNum, gggg;
とすると、書き込みの際のリターンコードが入らなくなると思います。但しこの場合は、ブランク仰臥はいるのが、この書き込み単位の所で起こっている場合です。

しかし、よく判らないのは、最初の状況の説明が、
>VB6を使って、複数のテキストファイル(~.txtで保存しているもの)を
>一つずつ読み込んで、それらを結合して1つのファイルにして
>リッチテキストボックスに表示する、というツールを作成しています。

と、書いてあるのですが、後半になってなぜかファイルに書きこむ作業のコードに写っています。リッチテキストボックスに読み込んだ文字列を表示するのではないのですか?
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございます!

私の質問が足りませんでした。ごめんなさい。
記述したコードは一部を抜き出したものでして、実際は
各テキストファイルを全部読み込んで、それを一度
一つのテキストファイルにまとめて保存します。
そして、その保存したファイルをもう一度全て読み込んでから
リッチテキストボックスに表示する、というふうにしています。

わざわざ一度テキストに保存する必要はなかったのですが、
なにせメモリを消費するコードになってますので、もしも
途中でハングアップしたりしても、かろうじてディスクには
まとめたファイルが残っているという状態にしておこうと
考えました。
これがそもそも悪かったようです。

間のテキストを一度保存するという部分をカットしたらうまく
いきました。
でも、教えていただいたコードの

 Print #FileNum, gggg,

gggg, というふうに書くことができるというのは全く知りません
でした。
とても勉強になりました。
本当にありがとうございました。

また何かと質問をしたいと考えていますので、その時はぜひぜひ
ご教授くださいませ。

お礼日時:2002/05/17 10:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!