2014-04-15 5 views
-2

외모에 대한 데이터 형식은 다음과 같습니다. 각 "run"에 대해 새로운 2 열 배열을 만들고 싶습니다.텍스트 데이터 섹션을 배열에 저장

Ran: Efg (space between : and E) 
1  50  (tab delimited) 
2  52  (tab delimited) 
3  54  (tab delimited) 
Ran: pg2 (space between : and E) 
1  40  (tab delimited) 
2  60  (tab delimited) 
3  80  (tab delimited) 
Ran: 2  (space between : and E) 
1  14  (tab delimited) 
2  15  (tab delimited) 
3  16  (tab delimited) 

지금까지, 나는 그것이 나에게 무한 루프를 제공하기 때문에 다음을 사용하여 문제를했습니다,하지만 난 이전

public void openDVHToolStripMenuItem_Click (object sender, EventArgs e){....} 

public static string resulttext 
    { 
     get { return resulttext; } 
    } 

에서 문자열 resulttext에 액세스하는 방법을 다른 모르겠어요 두 번째로, 나는 array-to-be의 이름을 분리하기 위해 지금까지 다음을 얻었다.

private void button1_Click(object sender, EventArgs e) 
    { 
     Dictionary<string, List<string>> Darray = new Dictionary<string, List<string>>(); 

     using (StringReader reader = new StringReader(resulttext)) 
     { 
      string line; 
      string ran = "Ran:"; 
      string region = ""; 

      while (null != (line = reader.ReadLine())) 
      { 
       if (line.Contains(ran)) 
       { 
        string[] splitHeader = line.Split(":".ToCharArray()); 
        region = splitHeader[1].Trim(); 
       } 
       else 
       { 
        if (!line.Contains(ran)) 
        { 
         List<string> Dlist = new List<string>(); 
         Darray.Add(region, Dlist); 
        } 

       } 

      } 
      foreach (var item in Darray) 
      { 
       richTextBox2.AppendText(item + Environment.NewLine); 
      } 

     } 


    } 

각 배열을 나중에 호출 할 수 있어야하며 두 숫자 열의 값에 대한 기본 계산을 수행 할 수 있어야합니다.

제안 사항?

+0

무엇이 무한 루프를 제공합니까? –

+0

전체 파일을 List 또는 Tuple로 읽지 않은 다음 왜 지정된 delim에서 Splits()의 올바른 코드 행을 설정 한 다음 컬렉션 및 프로세스를 반복 할 것인지 결정하십시오. 나는 목록에 파일을로드하는 방법을 찾는 것이 좋습니다 사전 또는 HashSet, HashList, HashTable 요법의 목록 .. 거기에 너무 많은 옵션을 다음 거기에서 데이터를 처리합니다 .. – MethodMan

+0

@ selman22, get {return resulttext; } Visual Studio에서 무한 루프라는 메시지를 내게 보냈습니다. – crazian

답변

1

이 : 그것은 재귀 때문에

public static string resulttext 
{ 
    get { return resulttext; } 
} 

당신에게 "무한 루프"를 제공합니다; return resulttextpublic static string resulttext입니다. 다음을 수행하십시오 :

public static string ResultText { get; private set; }