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
どうすればよいのでしょうかー?
>> Buff2 = Buff2 + Buff1
この部分、非常に怖い書き方してるね?
Buff2 = Buff2 & Buff1にしてみよぅ
TextBoxを、複数行表示可能な状態(MultiLineプロパティ)にしていますか?
怖い書き方なんですか、、とりあえず&に変更してみました、、
> この部分、非常に怖い書き方してるね?
この場合は、両方がString型ですから、必ず、
(加算ではなく)文字列連結として処理されます。
とはいえ、文字列連結をさせるなら & の方が無難ですね。
直前では、折角 & を使っているのですから、全て & に統一させましょう。
!、プロパティ変えたらできました、、
ありがとうございましたー<(_ _)>
肝心なことを見落としていたようですね、本当にすみません;
文字加算時には、&。
両方だったら、+、なんでしょうかねぇ、、
> 文字加算時には、&。
「加算」というより、「結合」ですかね...。
> 両方だったら、+、なんでしょうかねぇ、、
数値タイプなら「+」、
文字列ならば「&」、
まあ、確実に型さえ一致していれば問題ありませんが、
コーディング規約みたいなもので、この方が見やすいし、
無難っていうのが答えでしょう。
# VB ならではの概念ですけど。
文字列だと思って変数に格納された値を+で結合していくと、
両方文字列型の時には、+でも結合されるけれども・・・。
数値型が混在した場合、値が加算されてしまう。
まぁ、こういった意図しない動作を引き起こすことがあるので、
怖い書き方といっただけです。
普段から、文字列の結合には & を使うようにした方が、いいよ。
っていう程度です。
「+ 演算子」の動作について、昔、某所に投稿したクイズ。
http://www.momo-lab.net/kibidango/srch.cgi?mode=srch&ALL=1&word=518&logs=../../cbbs/cbbs.dat&no=0
上級者の人でも混同する事があるぐらいなので、
「文字列に対しては、常に & で連結する」ことをお奨めします。
ツイート | ![]() |