Отображать и анализировать данные датчика (текст) в flex - PullRequest
0 голосов
/ 05 апреля 2011

Я новичок в сгибании.У меня есть датчик, который отправляет данные в виде текстового файла.Формат данных следующий: dat = 110405120000 + 000,00 + 000,00 + 005,65 + 000,00 + 040,71 + 000,00 + 000,00 + 000,20.

Как я могу проанализировать эти данные?Я хочу получить:

дата: 05-04-11 время: 12:00:00 ch01: 000,00 ch02: 000,00 ch03: 005,65 ch04: 000,00 ch05: 040,71 ch06: 000,00 ch07: 000,00 ch08: 000.20

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Вы можете использовать эту функцию:

private function parse_data(input:String):Array {
  input = input.replace("\x20",""); 
  input = input.replace("dat=","");
  var numbers:Array = input.split("+");

  //get date
  var year:String = String(numbers[0]).substr(0,2);
  var month:String = String(numbers[0]).substr(2,2);
  var day:String = String(numbers[0]).substr(4,2);
  var date:String = day+"-"+month+"-"+year;

  //get time
  var hours:String = String(numbers[0]).substr(6,2);
  var mins:String = String(numbers[0]).substr(8,2);
  var secs:String = String(numbers[0]).substr(10,2);
  var time:String = hours+":"+mins+":"+secs;

  //output array
  var output:Array = new Array();
  output["date"] = date;
  output["time"] = time;

  //other chxx values
  for (var index:int=1; index<numbers.length; index++) {
    output["ch0"+index] = numbers[index];
  }

  return output;
}

это как вызвать функцию выше:

var result:Array = 
parse_data("dat=110405120000+000.00+000.00+005.65+000.00+040.71+000.00+000.00+000.20");

это результат массива:

{
  date:"05-04-11", 
  time:"12:00:00", 
  ch01:"000.00", 
  ch02:"000.00", 
  ch03:"005.65", 
  ch04:"000.00", 
  ch05:"040.71",
  ch06:"000.00",
  ch07:"000.00",
  ch08:"000.20"
}

для доступа к этому массиву:

var date:String = result["date"];
var time:String = result["time"];
var ch01:String = result["ch01"];
...

однако ch01 выше является строкой, если вам нужно целочисленное значение, вы должны преобразовать:

var ch01_value:int = int(ch01);

надеюсь, это может помочь

PS: БОЛЬШОЕ ПРИМЕЧАНИЕ: вышеупомянутая функция работает хорошо только в том случае, если у вас от 'ch01' до 'ch09', если у вас есть 'ch10' или более, вам нужно будет изменить его.

0 голосов
/ 05 апреля 2011

чтение файла: http://www.openwritings.net/content/read-text-whole-file использование String.split () и других строковых функций: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html Вы всегда можете добавить регулярные выражения и в формулу (RegExp):]

БИК

...