inputが上手くいかない、、

解決


さもらい  2005-01-14 14:50:37  No: 118897  IP: [192.*.*.*]

VB6で、中身が、、
345
2
1
となっているtest.txtを読み、上記の通りに表示させたいのに、「34521」と一行にしか表示されません、

構文はこのような感じです。
    Dim Buff1 As String
    Dim Buff2 As String
Buff2 = ""
Open "****\test.txt" For Input As #5
Do While Not EOF(5)
   Line Input #5, Buff1
   Buff1 = Buff1 & vbCrLf
   Buff2 = Buff2 + Buff1
 Loop
 
 Text2.Text = Buff2
 Close #5

どうすればよいのでしょうかー?

編集 削除
いな  2005-01-14 14:54:16  No: 118898  IP: [192.*.*.*]

>> Buff2 = Buff2 + Buff1

この部分、非常に怖い書き方してるね?
Buff2 = Buff2 & Buff1にしてみよぅ

編集 削除
魔界の仮面弁士  2005-01-14 15:04:17  No: 118899  IP: [192.*.*.*]

TextBoxを、複数行表示可能な状態(MultiLineプロパティ)にしていますか?

編集 削除
ばかなさもらい  2005-01-14 15:06:18  No: 118900  IP: [192.*.*.*]

怖い書き方なんですか、、とりあえず&に変更してみました、、

編集 削除
魔界の仮面弁士  2005-01-14 15:07:56  No: 118901  IP: [192.*.*.*]

> この部分、非常に怖い書き方してるね?
この場合は、両方がString型ですから、必ず、
(加算ではなく)文字列連結として処理されます。

とはいえ、文字列連結をさせるなら & の方が無難ですね。
直前では、折角 & を使っているのですから、全て & に統一させましょう。

編集 削除
さもらい  2005-01-14 15:08:28  No: 118902  IP: [192.*.*.*]

!、プロパティ変えたらできました、、

ありがとうございましたー<(_ _)>

肝心なことを見落としていたようですね、本当にすみません;

編集 削除
さもらい  2005-01-14 15:14:09  No: 118903  IP: [192.*.*.*]

文字加算時には、&。
両方だったら、+、なんでしょうかねぇ、、

編集 削除
じゃんぬねっと  URL  2005-01-14 15:24:41  No: 118904  IP: [192.*.*.*]

> 文字加算時には、&。
「加算」というより、「結合」ですかね...。

> 両方だったら、+、なんでしょうかねぇ、、
数値タイプなら「+」、
文字列ならば「&」、

まあ、確実に型さえ一致していれば問題ありませんが、
コーディング規約みたいなもので、この方が見やすいし、
無難っていうのが答えでしょう。

# VB ならではの概念ですけど。

編集 削除
いな  2005-01-14 15:24:43  No: 118905  IP: [192.*.*.*]

文字列だと思って変数に格納された値を+で結合していくと、
両方文字列型の時には、+でも結合されるけれども・・・。
数値型が混在した場合、値が加算されてしまう。
  まぁ、こういった意図しない動作を引き起こすことがあるので、
  怖い書き方といっただけです。

  普段から、文字列の結合には & を使うようにした方が、いいよ。
  っていう程度です。

編集 削除
魔界の仮面弁士  2005-01-14 15:56:15  No: 118906  IP: [192.*.*.*]

「+ 演算子」の動作について、昔、某所に投稿したクイズ。
http://www.momo-lab.net/kibidango/srch.cgi?mode=srch&ALL=1&word=518&logs=../../cbbs/cbbs.dat&no=0

上級者の人でも混同する事があるぐらいなので、
「文字列に対しては、常に & で連結する」ことをお奨めします。

編集 削除