2017-02-02 7 views
0

Приложение .net C# У меня есть проблема, как выйти (при нажатии кнопки) это (округленное красное) значение из файла lista.txt. Фактически, это список обменных курсов. Значения меняются ежедневно. Шахта всегда в одном положении. enter image description hereполучить часть строки из многострочной строки столбца

До сих пор, используя line.substring у меня есть вся колонна рядный: 5,2599355,3058300,2770031,0057322,4095196,1123050,8419020,7941597,0027418,7470806,926223 7,479628 1,729514

Как получить полужирный фрагмент. Его ближайший конец струны (7,479628). Большое спасибо.

+0

Пожалуйста, добавьте код, указанный до сих пор, чтобы достичь нужной строки – Steve

ответ

1

String.Split() должен уметь делать то, что вы хотите.

, если у вас уже есть столбец был бы:

var array = column.Split('\t'); //assuming the separator is a tab 
0

В изображении она выглядит как линии вкладка отделена? Вы можете прочитать каждую строку затем выполнить разделение с помощью символа табуляции ....

string[] arsplit = line.Split('\t'); 

, а затем захватить элемент из массива на основе индекса, который я полагаю, вы будете знать,

0

Попробуйте что-то вроде это

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"lista.txt"; 
     static void Main(string[] args) 
     { 
      StreamReader reader = new StreamReader(FILENAME); 
      int lineCount = 0; 
      string inputline = ""; 
      do while((inputline = reader.ReadLine()) != null) 
      { 
       if(++lineCount == 13) 
       { 
        string[] inputArray = inputline.Trim().Split(new char[] {' ','\t'},StringSplitOptions.RemoveEmptyEntries); 

        Console.WriteLine("Exchange Rate : '{0}'", inputArray[2]); 
        break; 
       } 
      } 

     } 
    } 

} 
0

Я только что получил решение, которое отлично работает от одного парня. Его предложение состояло в том, чтобы проверить EUR, который мне интересен. Итак, после загрузки файла, подход:

 int counter = 0; 
     string line; 

     System.IO.StreamReader file = new System.IO.StreamReader(fullPath); 
     while ((line = file.ReadLine()) != null) 
     { 
      if (counter == 0)//jump first row, it's header don't need it 
      { 
       counter++; 
       continue; 
      } 
      if (line.Contains("EUR")) 
      { 
       line = line.Replace(" ", "");//clean spaces 
       line = line.Substring(3 + 3 + 3 + 8, 8); 
      Response.Write(line); 
      } 

      counter++; 

     } 

     file.Close(); 

Так что, возможно, это может быть полезно для кого-то. В этот момент я не знаю, какое из ваших решений лучше. Просто хочу поблагодарить всех вас за помощь в столь короткое время.