inputが上手くいかない、、

解決


さもらい  2005-01-14 23:50:37  No: 118897

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 23:54:16  No: 118898

>> Buff2 = Buff2 + Buff1

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


魔界の仮面弁士  2005-01-15 00:04:17  No: 118899

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


ばかなさもらい  2005-01-15 00:06:18  No: 118900

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


魔界の仮面弁士  2005-01-15 00:07:56  No: 118901

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

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


さもらい  2005-01-15 00:08:28  No: 118902

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

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

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


さもらい  2005-01-15 00:14:09  No: 118903

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


じゃんぬねっと  URL  2005-01-15 00:24:41  No: 118904

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

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

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

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


いな  2005-01-15 00:24:43  No: 118905

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

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


魔界の仮面弁士  2005-01-15 00:56:15  No: 118906

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加