strという変数のなかには、ggという文字列がはいっています。
Dim strB As String
strB=Mid(str, 8) & "が参加しました。"
StrBには、ggしか入っていませんでした。
なぜでしょうか?
すみません。
訂正します。
strの中身は、実際には"半角スペース7"に「gg」です。
(str=" gg")
VB6とVB2005で下記のコードを試しましたが問題ないようです。
Dim str As String
Dim strB As String
str = " gg"
strB = Mid(str, 8) & "が参加しました。"
MsgBox strB & vbCrLf & _
"文字数:" & Len(strB)
どのような確認の仕方をしたのでしょうか?
それと開発環境は必ず明記しましょう。
書くのが面倒であれば、ここではなくVB6用の掲示板・VB.NET用の掲示板が
それぞれあるのでそちらで質問してください。
すみません。
開発環境は、VB2008・WinXPです。
本当は、
Dim str As String = encode.GetString(receivedDATA.ToArray())
If Mid(str, 1, 3) = "MSG" Then
msgAdd(Mid(str, 10, Mid(str, 8, 1)) & ">>" & Mid(str, 11 + Mid(str, 8, 1)))
ElseIf Mid(str, 1, 7) = "NAMES " Then
MsgBox(Mid(str, 8) & "が参加しました。")
End If
こんな感じのコードです。
わかりやすくしようと・・・。
receivedDATAは、IO.MemoryStreamです。
本当は、strは、"NAMES gg"です。
修正します
msgAddはMsgBoxです
Mid関数のlengthを設定すると、結合できました。
なぜでしょうか?
先ずコードの行頭に
Option Strict On
と入れることをお奨めします。
我龍院氏が書かれてる内容に関係することだが
プログラムする時は常に「データ型」を意識しながら
するようにしよう
データ型の認識が いい加減な初心者プログラマは、
わりと ちょっとした事で引っ掛かりがちな気がする
(逆を言えば、「たまたま動いてるだけ」なプログラムを
する人も、VB初心者には少なくない気がする)
こういう細かい部分も能力の差となる場合があるよ