텍스트 파일에서 데이터를 검색하기 위해 무언가를 쓰려고 시도했지만 데이터 형식이 파일의 작은 섹션에서만 발생합니다. 현재 저는 아래의 코드를 사용하여 헤더 태그를 읽고 저장 한 다음 파일 내에있는 섹션을 찾은 다음 목록에서 필요한 데이터를 분할하고 저장합니다. 파일에는 더 많은 헤더가 있지만, 지금은이 헤더가 주요 관심사입니다.구문 분석 문제 C#
데이터 만있는 간단한 테스트 파일을 사용하는 경우 두 번째 if 문 내의 코드가 올바르게 작동하고 데이터를 올바르게 저장합니다. 그러나 다음 데이터를 구문 분석하기 전에 파일 헤더를 통해 읽으려고하면 문자열이 잘못된 형식이라는 오류가 나타납니다.
if (line.StartsWith("["))
{
section = line.Trim();
MessageBox.Show(section);
}
if (section.Contains("HRData"))
{
string[] items = line.Split('\t');
int myInteger = int.Parse(items[0]);
BPMData.Add(myInteger);
BPMavg += myInteger;
myInteger = int.Parse(items[1]);
myInteger = myInteger/10;
SpeedData.Add(myInteger);
Speedavg += myInteger;
myInteger = int.Parse(items[2]);
CadenceData.Add(myInteger);
myInteger = int.Parse(items[3]);
AltitudeData.Add(myInteger);
myInteger = int.Parse(items[4]);
PowerData.Add(myInteger);
Poweravg += myInteger;
}
저는 MessageBox를 사용하여 파일을 실행하는 프로그램을 보여줍니다. 아래에 다시 문제의 파일에서 작은 추출물입니다. 아마 내가 얼굴을 응시하고있을지라도 문제를 해결하는 방법을 모르겠습니다.
당신이 줄 수있는 조언이 있으면 좋을 것입니다.
[HRData]
107 129 0 -19 0 50
당신은 잘못된 형식의 메시지가 (내가 Int.Parse''에서 가정 것을 얻을 때), 입력 라인은 어떻게 생겼는가? '[HRData]'섹션 다음에 형식이 잘못된 라인이있을 가능성이 있습니까? –
[디버거를 사용하십시오] (http://www.dotnetperls.com/debugging),'items'의 내용이 무엇인지 확인하십시오 –
무엇이 오류입니까? 어떤 코드 라인에서? 디버거가 관련 변수의 값을 알려줍니다. – millimoose