다음은 텍스트 파일에서 읽는 방법입니다. 읽는 동안 주어진 문자열에 정규 표현식을 매치 할 필요가 있습니다. 일치하면 라인 문자열을 컬렉션에 추가해야합니다. 이 방법은 28,653 라인을 가진 4MB
의 텍스트 파일을 실행Regex를 사용하여 텍스트 파일에서 읽기
private static void GetOrigionalRGBColours(string txtFile)
{
string tempLineValue;
Regex regex = new Regex(@"^\d+.?\d* \d+.?\d* \d+.?\d* SRGB$");
using (StreamReader inputReader = new StreamReader(txtFile))
{
while (null != (tempLineValue = inputReader.ReadLine()))
{
if (regex.Match(tempLineValue).Success
&& tempLineValue != "1 1 1 SRGB"
&& tempLineValue != "0 0 0 SRGB")
{
string[] rgbArray = tempLineValue.Split(' ');
RGBColour rgbColour = new RGBColour() { Red = Convert.ToDecimal(rgbArray[0]), Green = Convert.ToDecimal(rgbArray[1]), Blue = Convert.ToDecimal(rgbArray[2]) };
originalColourList.Add(rgbColour);
}
}
}
}
, 그냥 위의 방법을 완료 주변 삼분 소요됩니다. 또한 위 실행 결과로 originalColourList
에는 582 개의 항목이 채워집니다.
아무에게도이 방법의 성능을 어떻게 향상시킬 수 있습니까? 실제 텍스트 파일 크기는 60MB
까지 올 수 있습니다. 정규식에 대한
FYI-
마우스 오른쪽 버튼으로 경기 : 정규식에 대한 0.922 0.833 0.855 SRGB
잘못된 경기 :/SRGB/setrgbcolor 여기서 부하 데프
txt 파일은 원래 포스트 스크립트 파일이, 내가 저장 한되어 그 조작을위한 TXT 파일로 C#을 사용합니다.
정규 표현식에서 옳고 그른 부분을 표시하면 더 좋은 답변을 얻을 수 있습니다.이것은 정규 표현식이 실제로 필요한지 여부를 결정하는 데 도움이 될 수 있습니다. –
자세한 내용을 포함하도록 수정되었습니다. – iniki