2017-01-07 3 views
0

私の先生は、私たちの名前の文字を見つけてフォームの上部にあるラベルに置くことをファイルから読みとるように求めています。ここIndexOfの文字を取得する

が私のコードです:私のLBLに読んでいる

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    searchFile = File.OpenText("AcademicEthicsandIntegrityStatement.txt") 


    Dim s As String = searchFile.ReadToEnd 
    Dim b As String = s.IndexOf("b"c) 
    Dim r As Integer = s.IndexOf("r"c) 
    Dim i As Integer = s.IndexOf("i"c) 
    Dim a As Integer = s.IndexOf("a"c) 
    Dim n As Integer = s.IndexOf("n"c) 
    Dim ec As Integer = s.IndexOf("e"c) 

    Dim bRead = GetChar(s, b) 
    Dim rRead = GetChar(s, r) 
    Dim iRead = GetChar(s, i) 
    Dim aRead = GetChar(s, a) 
    Dim nRead = GetChar(s, n) 
    Dim ecRead = GetChar(s, ec) 
    lblName.Text = bRead + rRead + iRead + aRead + nRead + nRead + ecRead 
End Sub 

テキストではなく、「brianne」の「gmcaad」である

イム私はここで何かをしないのですかあまりがあることを確認してくださいこれを行う簡単な方法。どんな助けもありがとうございます。

+2

電源を入れます。 's.IndexOf(" b "c)'はint32を返しますが、それを文字列変数に代入しています。 – Plutonix

+0

あなたの名前の文字が** NOT **の場合はどうなりますか?その場合、 'String.IndexOf()'は-1の値を返します。あなたは現在そのシナリオをチェックしていません。 –

+1

あなたの宿題をするためにSOを得るのはちょっと皮肉で、AcademicEthicsandIntegrityStatement.txtというファイルを指す質問 – MrGadget

答えて

1

IndexOfは、0から始まるインデックスを返します。
GetCharは1から始まるインデックスを受け入れます。一貫性を保つため

  • あなたがIndexOfを使用したい場合は、代わりにGetCharの直接インデックスを使用します。

    Dim bRead = s(b) 
    Dim rRead = s(r) 
    
  • あなたがGetCharを使用したい場合は、代わりにIndexOfInStrを使用1つの値を返します。

+0

ああ、はい!私はあなたの最初の例を使ってくれてありがとうございました。ちょうど私が探していたもの。 –

+0

@BrianneRiggleまた、[Plutonixのコメント](http://stackoverflow.com/questions/41526361/get-character-of-indexof#comment70258727_41526361)をどうぞお願いします。 – GSerg

0

短い答え...大文字と小文字を区別:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
    With File.ReadAllText("AcademicEthicsandIntegrityStatement.txt") 
     For Each C As Char In "Brianne".ToCharArray 
      ' Note this is case-sensitive because it uses a binary comparison 
      Dim Index As Integer = .IndexOf(C) 
      If Index >= 0 Then lblName.Text &= .Substring(Index, 1) 
     Next 
    End With 
End Sub 

...と非大文字と小文字を区別します。オプション厳密に

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
    With File.ReadAllText("AcademicEthicsandIntegrityStatement.txt") 
     For Each C As Char In "Brianne".ToCharArray 
      ' Note this is not case-sensitive 
      Dim Index As Integer = .IndexOf(C.ToString, StringComparison.InvariantCultureIgnoreCase) 
      If Index >= 0 Then lblName.Text &= .Substring(Index, 1) 
     Next 
    End With 
End Sub 
関連する問題