VAPS XT开发入门教程40:格式化字符串

系列索引:VAPS XT开发入门教程索引

上一篇:VAPS XT开发入门教程39:带单位文本

此通用控件用于显示目标的经纬高数据,但是经纬高数据包含度(°)、分(′)、秒(″)等字符,而用户可读数据一般为浮点数,比如34.5678°,我们需要通过计算显示指定格式。

创建一个图符通用控件,并命名为LatBar。然后设置属性

properties

1、Position 控件位置
2、IsVisible 控件是否显示
3、PointSize 文字大小
4、Val 需要处理显示的数值
5、FontId 数值控件字体

打开控件实现,通过拖拽添加控件,一个WideText用于显示结果,一个IntArray(整型数组)用于存储解析后的数值,六个ConcatWStrings计算器用于计算结果。

实现

然后再数据流(Data Flow)添加数值操作

data flow

先将此控件属性值赋值给文本显示控件,以便统一风格。

数值整型数组控件的大小为3,分别对应度分秒值。默认数值为-34.283298492,先对数值取整取正值(Abs(ToInt(.Val)))得到34,作为度数值;然后对数值取正值(Abs(.Val))并减去度数值(DegMinSec.Element[0])得到小数值,再乘以60并取整得到16,作为分数值;然后对数值取正值(Abs(.Val))并减去度数值(DegMinSec.Element[0])得到小数值,再乘以60得到分数值1,再减去上一步计算的分数值(DegMinSec.Element[1])并乘以60并取整得到59作为秒数值。

DegMinSec

使用字符计算器ConcatDeg,将度数值与“””合并,并作为计算器 ConcatDegMin的输入1;

ConcatDeg

使用字符计算器ConcatMin,将分度值和“’”合并,并作为计算器ConcatDegMin的输入2,同时将ConcatDegMin作为计算器ConcatDegMinSec的输入1;

ConcatMin

使用字符计算器ConcatSec,将秒数值和“””合并,并作为计算器ConcatDegMinSec的输入2;

ConcatSec

使用字符计算器ConcatDegMin将度和分值合并

ConcatDegMin

使用字符计算器ConcatDegMinSec将度分值和秒值合并

ConcatDegMinSec

使用IfElse函数判断数值正负,得到南纬(S)或者北纬(N),并作为计算器ConcatResult的输入1;将计算器ConcatDegMinSec的属性Output作为ConcatReuslt输入2;使用计算器ConcatResult合并并得到最终结果

效果

如果你有问题,如果是简单的问题可以发邮件给免费解惑,如果涉及难问题或者需要提供附加的服务(比如授权、大工程集成编译、多分区相关,或者作为中间商联系Presagis)可以联系上海亥伯智能科技有限公司 邮箱


VAPS XT开发入门教程40:格式化字符串
https://feater.top/vapsxt/vapsxt-format-string
作者
JackeyLea
发布于
2022年8月25日
许可协议