• ベストアンサー

.NET Stringからバイト数を取得する。

初歩的な質問で申し訳ありません。 Stringから桁数ではなくバイト数を 取得する方法を教えてください。 Dim a As String a = "00あ" とあった場合、 aから4という結果がほしいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#187541
noname#187541
回答No.1

こんにちは。 文字列の文字数・バイト数を取得する http://www.bcap.co.jp/hanafusa/dotnet/moji02.htm どうぞ。

nijio-ra
質問者

お礼

教えてもらったサイトで解決できました。 ありがとうございました。

関連するQ&A

  • VB2005 で NetworkStream で取得したデータのバイト数の取得方法について

    VB2005 の初心者です。 System.Net.Sockets を利用して、Windows端末のAシステムとLinux端末のBシステムの通信部分のサービスを開発しています。 その際、NetworkStream で受信したデータのバイト数を取得したいのですが、やり方が分かりません。 データを取得している部分のソースは下記です。 10000バイトずつ取得していますが、 最後、10000バイトに満たない場合、取得したデータのバイト数が知りたいです。 Dim LNetworkStream As NetworkStream Dim LbEndFlg  As Boolean Dim LucData(10000) As Byte Do While LbEndFlg LNetworkStream = objClient.GetStream() Redim LucData(10000) LsLen = LNetworkStream.Read(LucData, 0, LucData.Length)  LbEndFlg = FindEndOfClaim(LucData) LstrText = System.Text.Encoding.UTF8.GetString(LucData, 0, LsLen) MstrXML = MstrXML & LstrText Loop NetworkStream には、SetLength というメソッドがありますが、 これは必ず例外を発生させてしまうので、 例外を発生させずにバイト数を取得したいです。 何かヒントになることでも良いので、 皆様の知恵をお借りできれば幸いです。 よろしくお願い致します。

  • 32進数の文字に+1カウントした値の取得

    Access(vba)で32進数の値に+1カウントした結果を取得したいと考えています。 引数、戻り値とも32進数の値の独自関数を作りたいです。 例) 11AF00 ⇒ 11AF01 11AF0Z ⇒ 11AF10 11AFZZ ⇒ 11AG00 下記のコードを途中まで考えましたが、繰り上がりとか考えてると???になってしまいました。 どなたかご教授お願いします。 Public Function P36進数カウント(str As String) Const alpha = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" Dim i As Integer Dim keta As Integer keta = Len(str)   ←桁数分LOOPするとか考えたのですが、ギブアップです。   Mid(str, i, 1) = Mid(alpha, InStr(alpha, Mid(str, i, 1)) + 1, 1) End Function

  • バイト配列のバイト数の設定方法を教えてください

    下のようなコードでWebページのソースを取得して、 そのページのコードを解析して、文字化けのない正常な状態で 変数にソースコードを代入するプログラムなのですが、 バイト配列に代入するためのバイト配列の配列数ですが、 5000などとするとページの途中まで正常に取得できるのですが、 多めにと思って50000とかとすると文字化けしてしまいます。 多すぎるとだめなようなのですが、これをぴったりの数値で設定するには ページのバイト数はどのように取得したら良いでしょうか? 下のコードのGetCode(bs)というのは http://dobon.net/vb/dotnet/string/detectcode.html のページにあるコード解析関数の呼び出しの部分です。 Dim txt As String = "http://www.yahoo.co.jp" Dim wc As New System.Net.WebClient Dim fs As System.IO.Stream = wc.OpenRead(txt) Dim bs(5000) As Byte 'byte配列に読み込む fs.Read(bs, 0, bs.Length) fs.Close() '文字コードを取得する Dim enc As System.Text.Encoding = GetCode(bs) 'デコードしてtxtに代入する txt = enc.GetString(bs) よろしくお願いいたします。

  • 文字数の取得方法(Active Basic 4)

    タイトルのとおりです。 Active Basicを使ってプログラミングをしているのですが、どうしても文字数の取得方法がわかりません。 命令文「Len()」を使えば文字列の「Byte」はわかりますが、文字数が取得できません。 何か良い方法はありますか? (Active Basic 参考プログラム) Dim Str$ As String Str$ = "abc"    '3文字 計3バイト Print Len(Str$)   '「3」が表示されます Str$ = "やほ~"   '3文字 計6バイト Print Len(Str$)   '「6」が表示されます

  • 大小まじりの文字列より使用バイトサイズを取得する

    いつもお世話になります。さっそくですが… VB.NETにて DIM Dmy AS String Dmy="あaaあ" 当然ですがDmyのバイト単位のレングスは6となると思います。このバイト単位のレングスを取得する方法を教えて頂けませんでしょうか?(VB6ですとストリングコンバートを使用すると取得可能なのですが…) お願いいたします。

  • ACCESSでレコード数の取得の仕方

    Aテーブルのレコード数を取得しようと思い、次のPGを考えました。(Aテーブルには10件のデータが入っています。)ですが、「-1」という数値が返ってきます。なぜでしょうか? Dim objADOCON As ADODB.Connection Dim objADORS As ADODB.Recordset Dim strSQL As String Set objADOCON = Application.CurrentProject.Connection strSQL = "SELECT * FROM Aテーブル" Set objADORS = objADOCON.Execute(strSQL) MsgBox objADORS.RecordCount , vbOKOnly, "レコード数"

  • Stringの一部分を取得したいのですが

    教えていただきたいのですが。。 Stringで、"0-1-4-2-10"と文字が入っているとして、最後の"-"以降の"10" という文字を取得したいのですが、いい方法はないでしょうか? "-"以降の文字は桁数もバラバラなので、「substringで最後から何番目を取得」 とすることができません。。 StringTokenizerで"-"で区切って、最後の"-"以降の文字(何桁でも)だけ取得とかはできるのでしょうか?? 教えてください、お願いします

    • ベストアンサー
    • Java
  • char型からのバイト数取得

    文字列から1文字ずつバイト数を取得(判定)したいのですが、 char型の文字のバイト数を取得するスマートな方法はありますか? 今考えているのは以下のようなコードです。 String str ="あA" for(int i=0; i < str.length(); i++) { char ch = str.charAt(i); StringBuffer SB = new StringBuffer(); SB.append(c); if(SB.toString().getBytes.length == 1) { //1バイトの処理 } else { //2バイトの処理 } }

    • ベストアンサー
    • Java
  • VBからDB2への接続について(レコード数の取得)

    初歩的な質問で申し訳ございませんが、以下内容についてご教授願います。 ・やりたいこと VBからDB2へ接続後、実行したSELECT文の結果のレコード数を取得したい。 ・環境 Visual Stadio 2005 DB2 9.5 ・現在のコード Sub main() Dim wScriptHost As Object 'パスの取得 (MyDocuments) Dim sMyPath As String wScriptHost = CreateObject("WScript.Shell") sMyPath = wScriptHost.SpecialFolders("MyDocuments") & "\" wScriptHost = Nothing Dim cn As ADODB.Connection = Nothing 'ENOVIAデータベース接続変数 cn = New ADODB.Connection cn.Open("Provider=IBMDADB2 ; Data Source=" _ & DBNAME & " ; Uid=" & DBUSER & " ; Pwd=" & DBPASSWORD) 'DBへ接続 Dim sel As String 'SELECT文の指定 sel = "select * from テーブル名" Dim rec As New ADODB.Recordset ' SELECT文の実行 rec = cn.Execute(sel) MsgBox(rec.RecordCount)  end sub ・実行結果  DBへの接続およびレコードの取得は正常に実行出来ているのですが、RecordCountが「-1」と なってしまいます。 お手数をおかけしますが、宜しくお願い致します。

  • バイト数の取得について

    Byteについて初心者なもので、詳しく教えて頂けませんか? 例)文字列:String str = "123あいう"; 5文字取得したい場合、     str.subString(0,5) ・・・ "123あい" と取得されますが、 5バイト取得("123あ")の場合、どのようにコーディングすればよろしいのでしょうか?

    • ベストアンサー
    • Java