2013-07-10 3 views
0

Я новичок в кодировании на C#. Я создаю медиаплеер, который содержит много функций. При загрузке видеофайла текстовый файл, который подготовлен специально для видео, будет загружен в связанный список. Но в файле txt каждая строка содержит event_id, время (время начала функции), событие (Open/Close), канал, продолжительность и параметр. Ссылка ниже показан пример текстового файла:Takind значение из связанного списка в C#

http://m1307.hizliresim.com/1c/b/q30qj.png

с этим я буду добавлять все строки в качестве элемента для связанного списка:

foreach (string line in File.ReadAllLines("Kod Yazmayı Öğrenmek.txt")) 
    { 
     linked.AddLast(line); 
    } 

с этим я хочу разделить каждый линия с «»:

foreach (var item in linked) 
     { 
      string[] parts = item.Split(','); 
     } 

на данный момент я хочу, чтобы сравнить currentposition медиаплеера к тому времени в связанном списке.

Я пытался сделать это с массивами:

int size_linked = linked.Count(); 
     int offff = 1; 
     int s = 0; 
     foreach (var item in linked) 
     { 
      string[] parts = item.Split(','); 
      my_array2[s] = parts[offff]; 
      offff += 6; 
      s++; 
     } 

И я использовать этот массив в методе:

private void check() 
    { 
     int size_linked = linked.Count(); 
     for (int i = 0; i < size_linked; i++) 
     { 
      if (player.Ctlcontrols.currentPosition == Convert.ToDouble(my_array2[i])) 
      { 
       // I will add function here 
      } 
     } 
    } 

Но это не работает. Как я могу взять связанный список времени, содержащий более одного значения?

Спасибо! :)

+0

Мой полный код здесь: https://docs.google.com/document/d/1dBhTnyCWz8uCdbON3Un-IKGOVeBp7OQTLXV9BDdq8aI/edit?usp=sharing – sudu

ответ

0

, если разбить строку, вам нужно увеличить счетчик на 1 каждый цикл вместо шести 6. я думаю, что это может быть от чего прийти:

int size_linked = linked.Count(); 
     int offff = 1; 
     int s = 0; 
     foreach (var item in linked) 
     { 
      string[] parts = item.Split(','); 
      my_array2[s] = parts[offff]; 
      //if you want to take only first splitted string for every parts you comment this: 
      //offff += 6; 
      s++; 
     } 
+0

Спасибо, но у меня все еще есть проблемы. Мой руководитель проекта сказал, что проблема может возникнуть при сравнении плавающих чисел. Затем я создаю новый метод: общественности статической BOOL между (двойной NUM, вдвое ниже, двойной верхний) { если (нижняя <= Num && Num <= верхний) возвращает истину; else return false; } – sudu

+0

то я сравниваю с эпсилон. Мой новый контрольный метод: private void check() { int size_linked = linked.Count(); for (int i = 0; i sudu

+0

Что такое тип my_array2? – NinoEmma

Смежные вопросы