2014-10-23 2 views
0

각 html 페이지에서 2 개의 오브젝트를 추출하여 배열로 저장하는 다음 코드가 있습니다. 그리고 마지막으로 텍스트 파일에 씁니다. 하지만 텍스트 파일에서 결과를 볼 수 없습니다. 사전에텍스트 파일에 결과를 쓸 수 없습니다 - C#

감사

for (int y = 0; y < 9; y++) 
{ 
    if (IDs[y] == null) 
    break; 
    else 
    { 
     string item = Convert.ToString(IDs[y]); 
     string url = "http://mu/tr/"; 
     string URL = url+item; 
     WebClient web = new WebClient(); 
     String html= web.DownloadString(URL); 
     MatchCollection m1 = Regex.Matches(html, @"<strong>\s*(.+?)\s*</strong>"); 
     MatchCollection m2 = Regex.Matches(html, @"<title>\s*(.+?)\s*</title>"); 
     foreach(Match m in m1) 
     { 
      string Gre = m.Groups[1].Value; 
      string sic = m.Groups[2].Value; 
      ITEM [y][0] = Convert.ToString(item); 
      ITEM [y][1] = sic; 
      ITEM [y][2] = Gre; 
     } 
    } 
} 
for (int row = 0; row < 9; row++) 
{ 
    for (int col = 0; col < 3; col++) 
    { 
     SIC.Write(ITEM[row][col] + " "); 
    } 
SIC.WriteLine(); 
} 
SIC.WriteLine(); 
+2

문제가있는 곳을 코드에서 확인한 적이 있습니까? 정규 표현식이 실제로 일치합니까? 9 개의 빈 줄과 같은 * 아무것도 * 텍스트 파일에 있습니까? 프로그램이 예외를 던지고 있습니까? –

+0

@JimMischel에 감사드립니다. YES 브레이크 포인트를 사용하여 찾은 일치 항목을 찾습니다. 또한 텍스트 파일에 빈 줄이 있다고 확신합니다. –

+1

SIC는 무엇입니까? StreamWriter? 당신은 당신의 작가를 인스턴스화하고 당신이 쓰려고하는 파일의 경로는 무엇입니까? – Sam

답변

0
내가 포인트가 부족하지 않지만이 완료되면 당신은 스트림 작가와 파일을 닫는 때문에 제가 말씀 드릴 수 없습니다

?

그래도 출력이 없으면 프로그램을 디버그하십시오. 다른 모든 방법이 열리지 않으면 스트림에서 테스트 행 하나를 작성하고 닫습니다. 텍스트가 파일에 표시되면 for 루프에서 문제가됩니다.

+0

하하. 이것이이 문제에 대한 저의 첫 번째 생각이었습니다. 하지만 방금 해봤습니다. streamWriter는 닫히지 않아야합니다. – C4u

+0

나는 스트림이 닫히지 않으면 버퍼에있는 것이 무엇이든 잃어 버릴 수 있다고 생각했다. 그리고 파일은 다른 프로세스가 그것을 사용하는 것을 방지하기 위해 쓰기 위해 잠기 게된다. – LukeDev

+0

실행중인 프로세스에 의해 잠길 수 있습니다. WriteLine()은 파일에 라인을 저장합니다. – C4u

0

IIS 프로세스에이 특정 디렉토리에 쓸 충분한 권한이 있는지 확인하십시오.

+1

IIS가 관련 있다고 생각하는 이유는 무엇입니까? –

관련 문제