Анализ файла .txt как различных типов данных - PullRequest
1 голос
/ 03 октября 2011

Итак, у меня есть текстовый файл, который выглядит следующим образом

-9
5.23
b
99
Magic
1.333
aa

Когда я пытаюсь прочитать его, используя следующий код, функция GetType () выводит его в виде строк:

string stringData;

streamReader = new StreamReader(potato.txt);
while (streamReader.Peek() > 0)
{
    data = streamReader.ReadLine();
    Console.WriteLine("{0,8} {1,15}", stringData, stringData.GetType());
}

Вот тогда вывод:

-9      System.String
5.23    System.String
b       System.String
99      System.String
Magic   System.String
1.333   System.String
aa      System.String

Я понимаю, что попросил класс streamReader прочитать все это как строки.

Мой вопрос: как его прочитать?как различные типы данных (например, string, int, double), и выведите его как:

-9      System.int
5.23    System.double
b       System.String
99      System.int
Magic   System.String
1.333   System.double
aa      System.String

Ответы [ 2 ]

6 голосов
/ 03 октября 2011

Вы должны преобразовать строку в следующие типы:

string stringData;
double d;
int i;

streamReader = new StreamReader(potato.txt);
while (streamReader.Peek() > 0)
{
   data = streamReader.ReadLine();

   if (int.TryParse(data, out i) 
   {       
       Console.WriteLine("{0,8} {1,15}", i, i.GetType());
   }
   else if (double.TryParse(data, out d) 
   {       
       Console.WriteLine("{0,8} {1,15}", d, d.GetType());
   }
   else Console.WriteLine("{0,8} {1,15}", data, data.GetType());
}
1 голос
/ 03 октября 2011

Обычно вы знаете типы (структуру файла).

Если нет, используйте RegEx для проверки возможных значений int и double, а остальные возвращайте как string.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...