2014-01-14 8 views
-4

저는 초급자입니다. 질문이 있습니다. 텍스트 파일에 쉼표로 구분 된 정수가 들어 있습니다.C에서 텍스트 파일의 정수를 읽는 방법 #

1,1.0,2.0,1.0,2,3.0,23.0,15.0,1.0

그리고이 파일에 대한 (어쩌면 더) 2000가 integers.I는에이 정수를 읽고 싶어 텍스트 파일을 하나씩 작성하고 목록을 작성하십시오.

어떻게하면됩니까?

감사합니다 ...

그래서 덕분에 나는 이것을 시도했습니다.

public List<double> getlist() 
    { 
     List<double> valuesList = new List<double>(); 

     string pat; 

     getfilelocation b = new getfilelocation(); 

     pat = b.getPath(); 

     System.IO.StreamReader rdr = System.IO.File.OpenText(pat); 
     string values = rdr.ReadToEnd(); 
     rdr.Close(); 
     string[] vls = values.Split(','); 

     foreach (string value in vls) 
     { 
      double d; 
      if (double.TryParse(value, out d)) 
      { 
       valuesList.Add(d); 
      } 

     } 

     return valuesList; 
    } 

사실인가요? 하나에 의해 하나에 변환 할 수

string value1 = File.ReadAllText("C:\\file.txt"); 

이 코드는 분할 후

string[] words = value1 .Split(','); 

을 분할 할 수 있습니다 :이 코드를 읽기

: 당신은 분할 방법을 사용할 수 있습니다

+1

는 왜 여러 항목에서 "0.0"을해야합니까 ... 값의 목록을? "1.5"를 어떻게 처리 하시겠습니까? 값이 모두 파일의 같은 줄에 있습니까? 나는 당신이 "by by by one"대신에 "by by one"을 의미한다고 생각합니다 - 이것에 대한 이유는 무엇입니까? –

+7

코드를 작성하여 시작할 수 있습니다. 그런 다음 문제가 발생하면 질문을 작성하고 어디서 붙어 있는지 정확히 설명하십시오. – gleng

+0

이걸 연구했지만 모든 답변이 다릅니다. 한 사람이 TextReader를 사용하고 다른 사람은 FileStream을 사용합니다. –

답변

1

여러 가지가 있습니다. 여기에 하나의 기본 방법이 있습니다 :

전체 내용을 문자열로 읽습니다.

System.IO.StreamReader rdr = System.IO.File.OpenText("c:\\myfile.txt") 
string stringvalues = rdr.ReadToEnd(); 
rdr.Close(); 

는 그런 쉼표로 값을 분할 :

string[] stringvalues = csvintegers.split(','); 

그리고 복식로 변환 (당신은 정수 말하지만, 나는 decimials를 참조, 그래서 당신은 두 배를 사용하는 것이 좋습니다 것입니다).

List<double> doublevalues = new List<double>(); 
foreach(string value in stringvalues) 
{ 
    doublevalues.Add(double.Parse(value)); 
} 

지금 당신은 그들이 모두 정수로 의미하는 경우

-2

+2

-1 당신은 실제로 자신의 대답을 작성합니까 ??? – gleng

+0

이 댓글 섹션에서 도대체 무슨 일이 벌어지고 있습니까? – Nico

0

초보자이므로 다음 도움말을 참조하십시오.

 var file = File.ReadAllText("yourPath"); 
     var list = new List<double>(); 
     foreach (var s in file.Split(',')) 
     { 
      double d; 
      if (double.TryParse(s, out d)) 
       list.Add(d); 
     } 
관련 문제