2014-01-14 15 views
-4

Я начинаю в C#, поэтому у меня есть вопрос. У меня есть текстовый файл, содержащий целые числа, разделенные запятыми, например:Как читать целые числа в текстовом файле в 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; 
    } 

Это правда?

+1

Почему у вас есть».0" на несколько записей, если они все это значит быть целыми числами? Как вы хотите, чтобы «1,5» обрабатывалось? Все ли значения в одной строке в файле? Я предполагаю, что вы имели в виду «один за другим» вместо «по одному» - любая причина для этого? –

+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

Вы можете использовать метод расщепления:

Читать с этим кодом:

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

и с этим кодом вы можете разделить

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

после раскола вы можете конвертировать в один за другим

+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); 
     } 
Смежные вопросы