DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Chrの使用法について

環境/言語:[visual basic2005]
分類:[.NET]

はじめまして。
文字コードからそれに対応する文字を返すために、
Dim a(10) as integer
Dim ss as string
ss=Chr(a(0))
'aは0から255までの整数
とすると、文字が何も返ってきません。
Chrのカッコ内に直接整数を入力すれば正しく返ってくるのですが・・・。
Chrの使用法が間違っているのでしょうか?
初歩的な質問かもしれませんが、どなたかわかる方、
よろしくお願いいたします。
  • 題名: Re[1]: Chrの使用法について
  • 著者: はいこーん
  • 日時: 2007/05/21 23:45:13
  • ID: 19721
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No19720に返信(shinoharaさんの記事)
> Chrのカッコ内に直接整数を入力すれば正しく返ってくるのですが・・・。

単純に値が入っていないだけでは?
どうやって確認しましたか?
2007/05/22(Tue) 00:52:31 編集(投稿者)

Chr(0) は所謂 NULL 文字ですから、String では表示上確認できないでしょう。
// と言うか制御文字全般。
ss を String ではなく Char にしておけば判別できる、のかな? VS 上でどう見えるのか今一良く分からないですが。

文字と文字列の区別はしっかり付けられるようにした方がいいでしょう。


I追記]
んー、なんか読み違えた気もする。
こんにちわ。
興味を持って触って見たのですが、同じであろう現象は確認出来ました。
ただし、.Net 2003 でですが。

For i As Integer = 0 To 255
 Call Console.WriteLine(Chr(i))
Next i

上記を実行して、結果を確認したところ、確かに何も出力されませんでした。
しかし、ステップ実行を行うと出力してくれたので下、記の様に Sleep を入れてみたところ出力は(一応)されました。

For i As Integer = 0 To 255
 Call Threading.Thread.Sleep(100)
 Call Console.WriteLine(Chr(i))
Next i

現象の確認までで、きちんとした回避策(もしくは、何かしらの問題)を提示出来ないのが心苦しいのですが、
この内容から識者の皆様が原因と対策を書き込んでくだされば、私の勉強にもなると思い書き込ませていただきました。
少しでも、参考になれば幸いです。
私の方でも検証してみました。
開発環境がないのと.NET Framework2.0がないので、
.NET Framework 1.1のvbc.exeで以下のソースをコンパイルし実行しました。
結果は問題なく表示されました。

○ソース
' コンパイル方法 → vbc /out:vbChr.exe vbChr.vb
Imports System
Imports Microsoft.VisualBasic

Module A
Public Sub Main()
For i As Integer = 0 To 255
Console.WriteLine(Chr(i))
Next
End Sub
End Module

○動作確認
コマンドプロンプトを起動して、上記ソースをコンパイルしたvbChr.exeを実行

参考までに。

DOBON.NET | プログラミング道 | プログラミング掲示板