String型からDoubleへの変換について

解決


nill  2008-01-28 23:14:14  No: 138756

はじめまして。VB超初心者です。
よろしくお願いします。
VB.NET2005です。
テキストファイルから1行ずつ読み込んだ文字列の変数LogLineを
変数LogLineの中に数字0があったら、1があったらとif文で判別したいと考えてます。
文字列から取得した変数Suuziを
If Suuzi  = 0 Thenにした際
Option Strict を  Onで開発してるため 'String' から 'Double' への暗黙的な変換はできません。のエラーが出てしまいます。
文字列を読み込んで取得した文字をinterger型にするにはどうしたらよいのでしょうか?

Dim LogLine As String
Dim suuzi As String

suuzi = Microsoft.VisualBasic.Left(LogLine, 1)

If suuzi = 0 then
  Aを実行する。
ElseIf CheckNumber = 1 Then
  Bを実行する。

End If


ガッ  2008-01-28 23:46:22  No: 138757

考えていることとやっていることの違いが明らかでないので,
重要なところがよくわかりません.

今のところ,質問文からは
・変数SuuziをInteger型の値として解釈させるにはどうすればいいのかききたい
・変数SuuziがString型なのに対して,なぜ `= 0` と数値として解釈させようとしているのか?
・変数Suuziと If-Then で関係を持つ,変数CheckNumberはどういう関係なのか?(ElseIf Suuzi = 1 Then ... の間違い?)

などが浮かんできます.

質問の最初の変数LogLine 関係の説明をすっ飛ばして,
> 文字列を読み込んで取得した文字をinterger型にするにはどうしたらよいのでしょうか?
だけを議題にしたいのなら,次のURLを踏んでください.
http://msdn2.microsoft.com/ja-jp/library/system.convert.toint32(VS.80).aspx


もげ  2008-01-29 00:05:45  No: 138758

それってInteger型にする必要があるのですか?
加減乗除を行うのでなければ、
        Dim LogLine As String = "0 Aの処理をする" 'ダミー
        'LogLineの取得処理がこの辺にあると仮定
        Dim Suuzi As String
        Suuzi = LogLine.Substring(0, 1)
        If Suuzi = "0" Then
            'Aの処理
        ElseIf Suuzi = "1" Then
            'Bの処理
        ElseIf Suuzi = "2" Then
            'Cの処理
        End If
        'とか
        Select Case Suuzi
            Case "0"
                'Aの処理
            Case "1"
                'Bの処理
            Case "2"
                'Cの処理
        End Select
でもいいと思いますが。


nill  2008-01-31 20:43:32  No: 138759

ガッさん、もげさんありがとうございました。
アドバイスのおかげで無事解決できました。
またわからない所があったら質問させて頂きますので
その時はまたよろしくお願いします。


nill  2008-01-31 20:44:45  No: 138760

解決のチェック忘れてました。
申し訳ありません。。。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加