2017-05-08 1 views
0

내 응용 프로그램 내에서 설정 내용을 읽으려고합니다. 아래는 내가 함께 문제가 있어요 코드입니다 :설정에서 문자열 나누기

private bool checkGrid() 
{ 
    string playlists = Spotify_Extender.Properties.Settings.Default.Playlists; 

    MessageBox.Show(playlists); 

    string[] split1; 

    if (playlists.Contains(";")) 
    { 
     MessageBox.Show("Multiple Links"); 
     split1 = playlists.Split(';'); 
    } 
    else 
    { 
     MessageBox.Show("One Link"); 
     split1 = new string[1]; 
     split1[0] = playlists; 
    } 

    MessageBox.Show("Array Length: " + split1.Length); 

    int lines = 0; 

    for (int i = 0; i < split1.Length; i++) 
    { 
     MessageBox.Show("Check #" + i + " - " + split1[i] + " - Length: " + split1[i].Length); 
     if (split1[i].Length >= 22) 
     { 
      MessageBox.Show(i + " - " + split1[1]); 
      lines++; 
     } 
    } 

    int rows = this.playlistGrid.Rows.Count; 

    MessageBox.Show(lines + ""); 

    if (rows == lines) 
     return true; 

    return false; 
} 

코드는 쉽게 이해할 수 있어야하고 내가 알고로는 지금까지 작동합니다,하지만 그렇지 않습니다. 내 설정이 입력 :

enter image description here

내가 이제 프로그램을 실행하면, 내 첫 번째 메시지 박스가 인쇄됩니다 내가 입력 한 정확히 무엇을, 두 번째가 인쇄됩니다 "하나의 링크"세 번째 인쇄 "배열의 길이 : 1". 이제 우리는 문제가있는 부분으로갑니다.

enter image description here

그래서 메시지 박스에 표시되는 텍스트의 길이가 22이지만, 다운이 문 아래는 사실이 아니다 :

if (split1[i].Length >= 22) 

정말이야 다음 메시지는 이것이다 이 혼란스러워하고 내가 확인할 때 그것은 또한이 작업을 수행이 : 내가 무엇을 해야할지하지 않기 때문에 내 코드가 잘되어야하기 때문에

if (split1[i] != "") 

어떤 도움

가, 감사합니다. 시간 내 줘서 고마워!

+0

을해야합니까? 모든 오류 메시지 또는 그냥 if 문에서 문을 건너 뛸? 또한,'MessageBox.Show (i + "-"split1 [1]);'가 오타가되었거나 정말로'split1 ['** ** 1 **']'를 출력하고 싶습니까? – Prisoner

+0

오, 맞습니다. split1 [i], 고마워요. 그렇지만 if 문이 건너 뛴다는 사실은 변하지 않습니다. –

+1

문제가있는 줄에 중단 점을 넣고 코드를 실행하고 생각할 때 라인이 예상대로 동작하지 않을 때,'split1 [i]'의 실제 값은 얼마입니까? 이것은 당신이하는 첫번째 일이되어야합니다. –

답변

-1

당신은 split[i] 아니라 당신이 "이 진술은 사실이 아니다"무엇을 의미 split[1]

+1

이것은 이미 의견에서 말했고 OP는 오타를 인정했지만 문제는 설명하지 않았습니다. 문제. – Steve