在flex中显示和解析传感器数据(文本)

发布于 2024-10-31 01:40:17 字数 268 浏览 7 评论 0原文

我是新来的。我有一个以文本文件形式发送数据的传感器。数据格式如下:dat=110405120000+000.00+000.00+005.65+000.00+040.71+000.00+000.00+000.20。

我如何解析这些数据?我想要的输出是:

日期:05-04-11 时间:12:00:00 频道01:000.00 频道02:000.00 频道03:005.65 频道04:000.00 频道05:040.71 频道06:000.00 频道07:000.00 频道08:000.20

i'm new to flex. I have a sensor that sends data as text file. Data format as follow: dat=110405120000+000.00+000.00+005.65+000.00+040.71+000.00+000.00+000.20.

How can i parse this data? The output i want is:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟凡古楼 2024-11-07 01:40:17

你可以使用这个函数:

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);

希望这可能有帮助

P.S.:
重要提示:只有当您有“ch01”到“ch09”时,上述函数才能正常工作,
如果您有“ch10”或更多,则需要对其进行修改。

you can use this function:

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;
}

this is how to call the function above:

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

this is the array result:

{
  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"
}

to access this array:

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

however ch01 above is a string, if you need integer value, you have to convert:

var ch01_value:int = int(ch01);

hope this may help

P.S.:
BIG NOTE: the above function works well only if you have 'ch01' to 'ch09',
if you have 'ch10' or more, you will need to amend it.

与风相奔跑 2024-11-07 01:40:17

阅读文件: http://www.openwritings.net/content/read-text -整个文件
使用 String.split() 和其他字符串函数: http:// help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html
您也可以随时向公式中添加正则表达式 (RegExp) :]

blz

read the file: http://www.openwritings.net/content/read-text-whole-file
use String.split() and other String functions: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html
You can always add regular expressions to the formula too (RegExp) :]

blz

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文