2013-03-24 3 views
2

Я использую измеритель источника, который измеряет ток и измеряет напряжение и, наконец, экспортирует все данные I-V через rs232. Я пишу их в текстовый файл с следующим форматом: I1, V1, I2, V2, I3, V3 ... Я разделил все «запятые» на функцию «split», но я не знаю, как я могу держать пары IV в массиве, а затем я хочу рассчитать каждый сопротивления каждого IV путем простого ввода-вывода.
Любая помощь будет принята с благодарностью.Анализ данных I-V в текстовом файле

public class Sample 
{ 
public static void Main() { 
    using (StreamReader reader = new StreamReader("myfilefile.txt")) { 
     string line = null; 
     while (null != (line = reader.ReadLine())) 
      { 
      string[] values = line.Split(','); 
      } 
    } 
} 
} 
+1

Почему бы не использовать ';' как разделитель между парами? –

+0

Почему бы не использовать MatLab? ;) –

+0

купить matlab для такого тривиального тренда ..? – quetzalcoatl

ответ

2

Вы могли бы сделать что-то вроде этого:

for (int j = 0; j < values.Length; j += 2) { 
    double i = double.Parse(values[j]); 
    double v = double.Parse(values[j+1]); 
    double r = v/i; 
} 
1

Если вы можете предположить, что у вас всегда есть пары (и, следовательно, четное число элементов в значениях), вы можете сделать это:

// your line 
string[] values = line.Split(','); 
// my addition 
for(int pair=0; pair<values.Length; pair=pair+2) 
{ 
    string iValue = values[pair]; 
    string vValue = values[pair+1]; 

    Double i; 
    Double v; 
    bool iOk = Double.TryParse(iValue, out i); 
    bool vOk = Double.TryParse(vValue, out v); 
    if (iOk && vOk) 
    { 
     Double r = i/v; 
     Console.WriteLine("{0} (R) = {1} (I)/{2} V ",r, i, v); 
    } 
    else 
    { 
     Console.WriteLine("{0} or {1} is not parseable", iValue, vValue); 
    } 
} 
+0

Рене благодарит, что работает отлично. – user2202228

+0

Если вы считаете, что этот ответ лучше всего подходит для вашего вопроса, отметьте его как ответ ... – rene

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