2012-10-09 5 views
-1

나는이 기능을 가지고 :목록의 값을 텍스트 파일에 쓰려면 어떻게해야합니까?

private void button6_Click(object sender, EventArgs e) 
{ 
    crawlLocaly1 = new CrawlLocaly(); 
    crawlLocaly1.StartPosition = FormStartPosition.CenterParent; 
    DialogResult dr = crawlLocaly1.ShowDialog(this); 
    if (dr == DialogResult.Cancel) 
    { 
     crawlLocaly1.Close(); 
    } 
    else if (dr == DialogResult.OK) 
    { 
     //LocalyKeyWords.Add(crawlLocaly1.getText() + "," + mainUrl); 
     if(LocalyKeyWords.ContainsKey(mainUrl)) 
     { 
      LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText()); 


     } 
     else 
     { 
      LocalyKeyWords.Add(mainUrl, new List<string>(new string[] 
      { 
       crawlLocaly1.getText() 
      } 
      )); 
     } 
     crawlLocaly1.Close(); 
    } 
} 

때 텍스트 상자와 사전 인 LocalKeyWords>의 결과가 같은 그래서 확인을 클릭하는 사용자 유형 뭔가를 :

인덱스 0에서

이 예를 들어있을 것입니다 : 구글은 사용자가 사용자가 동일한 URL의 키를 변경하는 경우는 두 번째 부분으로 이동합니다 URL로 한 번에 키워드를 입력하면 이제 http://www.google.com

에 속하는 키 인 경우 http://www.google.com "," 구글이 첫 번째 부분 인 e로 이동합니다. lse 사용자가 url을 변경하면 두 번째 부분으로 이동합니다.

처음으로 URL은 두 번째로 동일한 URL에 대한 키를 업데이트하거나 새 URL에 대한 새 키를 넣습니다.

index 0 http://www.google.com,google 
index 1 http://www.microsoft.com,com 

등등 ... 그리고이 기능이 제대로 난 그냥 하드 디스크에 텍스트 파일에 목록을 추가 할 필요가 노력하고 있습니다 :

그래서 목록은 다음과 같이해야한다. 그래서 Form1 수준에서 나는 streamwriter w = new streamwriter (@ "d : \ test.txt");

난 후 남아있는 URL에 표시되는 목록에 중단 점을 사용하고, 다음 뭔가 다른되지 키워드 참조 사실 :

[0] = {[http://www.google.co.il, System.Collections.Generic.List`1[System.String]]} 

아니고 버그 뭔가를 그냥이다 내가 그것을 보는 방법 인 중단 점에. 대신 System.Collections.Generic.List`1 [System.String] 예를 들어 키워드를 보려고했습니다 : google

어떤 방법으로 텍스트 파일 형식이되도록 텍스트 파일에 List 값을 쓰려면 어떻게해야합니까? 이 같은 :

0 http://www.google.com,google 
1 http://www.microsoft.com,hello 
2 http://www.cnet.com,Daniel 

0 1 2 존재하는 indexs 및 URL의 존재 mainUrl 및 (사용자가 입력 한 키워드가) 올바른 SIE 존재하는 키.

그리고 어떻게 lixtBox에 텍스트 파일의 값을 다시 읽어들입니까? 내가 생성자에서 프로그램을 실행하고있을 때 그래서 텍스트 파일을 읽고 목록 상자에서이 형식을 나에게 보여줍니다 :

url: http://www.google.com --- keword: google 
url: http://www.microsoft.com --- keword: hello 
url: http://www.cnet.com --- keword: Daniel 

그래서 목록 상자에서 사용자가 텍스트 파일에 다음 좋네요을 볼 수 있습니다.

답변

0

당신은 당신의 가치 TEXTFILE에 쓸 수있는이 간단한 코드를 시도 할 수 있습니다 : 당신이 다음 코드를 사용하여 해당 TEXTFILE을 읽을 수

또한
 int count = 0; 
     foreach(KeyValuePair<string, string> kvp in LocalyKeyWords) 
     { 
      w.WriteLine(count.ToString() + " " + kvp.Key + " " + kvp.Value); 
      count++; 
     } 
     w.Close(); 

을, 당신이 세 가지를 모두있는 경우는 확인하지 않습니다 있음을 경고한다 텍스트 파일에서 공백 문자로 구분 된 문자열. 또한 저장중인 텍스트에 공백 문자가있는 경우 일부 특수 문자가있는 파일에서 문자열을 분리해야합니다.

 TextReader r = new StreamReader(@"d:\test.txt"); 
     string line = string.Empty; 
     while ((line = r.ReadLine()) != null) 
     { 
      string[] data = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 
      ListViewItem lvi = new ListViewItem("url: " + data[1] + " " + data[2]); 
      listView1.Items.Add(lvi); 
     } 
0

디버거에서 말하는 정확한 내용. 문자열이 아닌 컬렉션에 문자열 목록을 추가하는 것이므로 디버거가 문자열 대신 목록을 표시합니다. 도구가 잘못되었다고 생각하는 것은 초보자 실수입니다.

LocalyKeyWords.Add(mainUrl, new List<string>(new string[] 

그런데 구문은 정확하지 않습니다. 닫는 괄호가 없습니다.

관련 문제