저는 C# 프로그래밍의 초보자입니다.C에서 MS 차트 컨트롤 시리즈로 파일에서 큰 데이터를 읽는 방법
대용량 (> 1GB) 텍스트 파일 (하나의 열에 전압 판독 값 포함)을 읽고 MS 제어도에 표시하고 싶습니다.
작은 파일 (~ 50MB)에서는 정상적으로 작동하지만 300MB보다 큰 파일에는 걸리지 않으며 더 큰 파일에 대해서는 메모리 부족 예외가 발생합니다.
이 값은 ~ 30e6 값이 각각 "0.189312433308071"과 같습니다.
은 여기 어떻게 지금 데이터를 읽어 메신저 :
System.IO.StreamReader sr = new
System.IO.StreamReader(openFileDialog1.FileName);
string line;
int pointIndex = 0;
while ((line = sr.ReadLine()) != null)
{
dataVoltage.Add(line);
chart1.Series["Default"].Points.AddXY(pointIndex, Convert.ToDouble(line));
pointIndex=pointIndex+1;
}
sr.Close();
어떻게 성공적으로로드 또는 전혀로드하지 않는 파일에 대한 분을 기다리지 않고이 작업을 수행 할 수 있습니까?
감사합니다.
의견을 보내 주셔서 감사합니다. 실제로 응용 프로그램은 차트에 정확한 값을 표시해야합니다. 내가 염두에두고있는 점은 처음에 각각의 n 값을 평균적으로 표시한다는 것입니다. 그러나 사용자가 특정 영역을 확대하면 응용 프로그램은 해당 기간의 정확한 값을 추가해야하며 사용자가 축소 할 때 이전 평균값을 표시해야합니다. 하지만 난 그렇게 할 수 있다고 생각하지 않는다. 너무 복잡해 보인다. – Xichan
그렇게 복잡하지는 않습니다. 사실 가치를 버킷으로 올리는 경우 확대/축소가 집중하는 버킷을 결정한 다음 해당 버킷을 리베 케팅 할 수 있습니다. 여전히 많은 양의 메모리를 사용하고 있지만, 시스템이 값을 읽거나로드하려고 시도해서는 안됩니다. 확대/축소가 원하는 데이터를 표시하기에 충분하기 전에 평균 주위에 위 아래 막대를 추가로 배치 할 수 있습니다. 그러나, 그러한 종류의 디스플레이를위한 것이 아닌 오브젝트에 3 천만 개의 개별 점을 표시하는 것은 효과가 없습니다. – Tawnos