2017-12-02 2 views
1

私の現在の仕事では、配列を使って8桁のカード番号を読み取る必要があります。私は自分のコードの冒頭でこのように私の配列を宣言しています。文字列配列の各要素を整数に変換するにはどうすればよいですか? (VB)

Dim LoyaltyCardDigits(8) As Integer 

私はそれが読み込まれた後にこれらの配列の要素の計算を実行する必要があるので、私は整数としてこれを宣言した理由がある Iテキストボックスから8文字を読み込み、これらの文字を変数に代入しています。

CardNumber = txtCardNumber.Text 

これらの文字を配列要素に割り当てます。しかし、これは私が立ち往生している私の問題です。だから私はので、私は計算を実行することができます整数への文字列から配列要素を変換するためのソリューションを希望締結する

Private Sub btnSubmitDetails_Click(sender As Object, e As EventArgs) Handles btnSubmitDetails.Click 

    For Counter = 1 To 8 
     LoyaltyCardDigits(Counter) = Mid(CardNumber, Counter, 1) 
    Next Counter 

。私はすでにそれをコード化しているので、検証について心配する必要はありません。私はVBに非常に新しいので、助けができるだけ単純化されていれば好きですが、私は明らかに動作するものはすべて受け入れます。

+0

注意すべき最初の事は、.NET配列はゼロベースなので、あなたの配列のインデックスは0から行くべきであるということです7. 2つ目のことは、あなたがしたいことをあなたに教えてくれたことです。以前に行ったコードを提供しましたが、そのコードの動作があなたのニーズを満たしていないことは説明していません。 – jmcilhinney

+0

[送信]ボタンをクリックしたときに表示されるエラーメッセージは次のとおりです。Microsoft.VisualBasic.dllで 'System.InvalidCastException'型の未処理の例外が発生しました。 追加情報:文字列型からInteger型への変換が無効です。 –

答えて

0

は、あなたはすでに検証の世話をしたので、のような何かをしようと言った:

Private Sub btnSubmitDetails_Click(sender As Object, e As EventArgs) Handles btnSubmitDetails.Click 
    If CardNumber.Length = 8 Then 
     For i As Integer = 0 To 7 
      LoyaltyCardDigits(i) = CInt(CardNumber.Substring(i, 1)) 
     Next 

     ' ... now do something with LoyaltyCardDigits ... 

    End If 
End Sub 
+0

返事をありがとう。私はこれを試して、このメッセージが表示されます:Controlled Assessment Project.exeで 'System.NullReferenceException'型の未処理例外が発生しました 追加情報:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 –

+0

どの行が指し示していますか?...あなたに役立つ情報が必要になります。 –

+0

私はそれを編集しました。今は正常に動作しているようです。ありがとうございます。 –

関連する問題