C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: vbFromUnicode、vbUnicodeの変換


(過去ログ 129 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■76687 / inTopicNo.1)  vbFromUnicode、vbUnicodeの変換
  
□投稿者/ まあさ (3回)-(2015/08/03(Mon) 10:41:52)

分類:[VB.NET/VB2005 以降] 

Dim i As Integer '検索バイト位置
Dim n As Integer '検索文字位置
Dim strMoji As String = "ABCDEFG"
Dim strMoji1 As String = ""

i = StrConv(LenB(StrConv(Mid(strMoji, n, 1), vbFromUnicode)), vbUnicode) + i

strMoji1 = LeftB(StrConv(strMoji, vbFromUnicode), KgrByte)
strMoji1 = StrConv(strMoji1, vbUnicode)


上記のVB6.0のソースをVB.Net2013用に変換したいのですが、
「vbFromUnicode」「vbUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?


よろしくお願いします
引用返信 編集キー/
■76689 / inTopicNo.2)  Re[1]: vbFromUnicode、vbUnicodeの変換
□投稿者/ 魔界の仮面弁士 (430回)-(2015/08/03(Mon) 11:22:45)
2015/08/03(Mon) 11:24:33 編集(投稿者)

No76687 (まあさ さん) に返信
> どうすれば良いでしょうか?
この掲示板の上部にある、
 『C# と VB.NET 入門』
 『C# と VB.NET のサンプル』
のいずれかのリンクをクリックし、そこから
 [サンプル] > [Visual Basic .NET (VB.NET)] > [文字列 (String)]
と辿って、サンプル 30 や 31 を参照してみてください。
引用返信 編集キー/
■76698 / inTopicNo.3)  Re[1]: vbFromUnicode、vbUnicodeの変換
□投稿者/ shu (766回)-(2015/08/04(Tue) 11:02:53)
No76687 (まあさ さん) に返信
> i = StrConv(LenB(StrConv(Mid(strMoji, n, 1), vbFromUnicode)), vbUnicode) + i
i = LenB(StrConv(Mid(strMoji, n, 1), vbFromUnicode)) + i
と同じ結果になるかと思いますが、なぜわざわざStrConv(〜, vbUnicode)を行っているのでしょう?



> 
> strMoji1 = LeftB(StrConv(strMoji, vbFromUnicode), KgrByte)
> strMoji1 = StrConv(strMoji1, vbUnicode)          
> 
> 
        Dim sjis = Encoding.GetEncoding("Shift_JiS")
        Dim a = sjis.GetBytes("あいう").Take(4).ToArray
        Dim b = sjis.GetString(a)

こんな感じで処理出来ますが、KgrByteにより文字の途中でByte配列が切れる
ことがありますがその辺はどうなのでしょう?

引用返信 編集キー/
■76699 / inTopicNo.4)  Re[2]: vbFromUnicode、vbUnicodeの変換
□投稿者/ 魔界の仮面弁士 (432回)-(2015/08/04(Tue) 11:37:36)
No76698 (shu さん) に返信
> Dim a = sjis.GetBytes("あいう").Take(4).ToArray
> Dim b = sjis.GetString(a)

このようにも書けますね。
 Dim a = sjis.GetBytes("あいう")
 Dim b = sjis.GetString(a, 0, 4)


> こんな感じで処理出来ますが、KgrByteにより文字の途中でByte配列が切れる
> ことがありますがその辺はどうなのでしょう?
ちなみに元の VB6 コードは、strMoji に渡す文字列の内容によっては、
Win95 で実行したときと Windows 7 で実行した場合とで
結果が異なるという罠があったりします。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -