tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル文字列をバイト単位で取得する(VB.NET)
記事No726
投稿日: 2004/02/19(Thu) 14:18
投稿者にきゅ〜
[OSのVer]:Windows2000    [VBのVer]:VB.NET2003
PDA上に置かれている固定長ファイルを読込んで
画面に情報を表示させる処理をVB.NET(スマートデバイスアプリ)で作っています。
ヘルプを見ると.NETになってからMidBがサポートされてなく、
StrConvはスマートデバイスでサポートされていないため
文字列に全角文字、半角文字が混ざって記述されていると正しくMidでは取得できません。


どうしても読込んだファイルから、
文字列をバイト単位で取得したいのですが、方法はあるのでしょうか?

[ツリー表示へ]
タイトルRe: 文字列をバイト単位で取得する(VB.NET)
記事No727
投稿日: 2004/02/19(Thu) 14:59
投稿者通りすがり
Len関数で逃げられますよ。

.NETからLenBやMidBがサポートされなくなったのは
Unicodeで処理されるようになったからです。
詳しい使い方は、MSDNを見てみてください。

[ツリー表示へ]
タイトルRe: 文字列をバイト単位で取得する(VB.NET)
記事No728
投稿日: 2004/02/19(Thu) 15:02
投稿者魔界の仮面弁士
.NET Compact 1.0(SP2)ですよね。
System.Text名前空間のEncodingクラスにある
GetBytesメソッドを使って対処できないでしょうか。

[ツリー表示へ]
タイトルRe^2: 文字列をバイト単位で取得する(VB.NET)
記事No730
投稿日: 2004/02/19(Thu) 15:13
投稿者にきゅ〜
[OSのVer]:Windows    [VBのVer]:VB.NET  
> .NET Compact 1.0(SP2)ですよね。
> System.Text名前空間のEncodingクラスにある
> GetBytesメソッドを使って対処できないでしょうか。
ありがとうございます。
さっそくやってみます。

[ツリー表示へ]
タイトルRe: 文字列をバイト単位で取得する(VB.NET)
記事No729
投稿日: 2004/02/19(Thu) 15:04
投稿者花ちゃん
下記ではどうでしょう

Private Function fLenB(ByVal MyString As String) As Integer
    fLenB = System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(MyString)
End Function

[ツリー表示へ]
タイトルRe^2: 文字列をバイト単位で取得する(VB.NET)
記事No731
投稿日: 2004/02/19(Thu) 15:17
投稿者にきゅ〜
[OSのVer]:Windows    [VBのVer]:VB.NET  
> 下記ではどうでしょう
>
> Private Function fLenB(ByVal MyString As String) As Integer
>     fLenB = System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(MyStrin
g)
> End Function
ありがとうございます。
さっそく、上記のFunction文ソースに挿入して、
試してみます。

[ツリー表示へ]
タイトルRe^2: 文字列をバイト単位で取得する(VB.NET)
記事No732
投稿日: 2004/02/19(Thu) 18:21
投稿者にきゅ〜
[OSのVer]:Windows    [VBのVer]:VB.NET  
> 下記ではどうでしょう
>
> Private Function fLenB(ByVal MyString As String) As Integer
>     fLenB = System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(MyStrin
g)
> End Function
実行して見た所、
うまくバイト数の取得が出来ました。
これで固定長ファイルから取得した文字列を全てバイト単位で取得出来ます。
ありがとうございます。^^

[ツリー表示へ]