字符串解析 Python Basic (工业设备通用语言)

news/2024/12/22 18:55:51/

Basic:

通过字符串的操作来进行数据解析。先按照字母将字符串分割,然后对每个部分取合适的子串以得到需要的值。

代码

s = "X79.004Y73.0022U0.0108444ALL" 
parts = [] 
start = 0 
for i in range(1, len(s)): 
    if not s[i].isdigit() and s[i]!= '.': 
        parts.append(s[start:i]) 
        start = i 
parts.append(s[start:len(s) - 3]) 
 
result = [] 
for part in parts: 
    if part.startswith('X'): 
        num = part[1:] 
        num = "{:.3f}".format(float(num)) 
        result.append(f"X={num}") 
    elif part.startswith('Y'): 
        num = part[1:] 
        num = "{:.3f}".format(float(num)) 
        result.append(f"Y={num}") 
    elif part.startswith('U'): 
        num = part[1:] 
        num = "{:.3f}".format(float(num)) 
        result.append(f"U={num}") 
 
 
print("\n".join(result)) 
 
 

解释

  1. 首先将输入的字符串按照字母分割成多个部分,存储在parts列表中。
  2. 然后遍历parts中的每个元素,如果以XYU开头,就提取出后面的数字部分,将其转换为浮点数后按照要求保留三位小数,并构建成指定格式的字符串,最后将这些结果存储在result列表中。
  3. 最后将result列表中的字符串用换行符连接起来并打印输出。


-------------------------
 

Basic:
使用字符串操作函数来解析数据。首先找到每个变量的位置,然后截取相应的数值部分,并进行格式化输出。

代码

' 定义输入字符串 
DIM input AS STRING 
input = "X79.004Y73.0022U0.0108444ALL"' 找到每个变量的位置 
DIM x_pos AS INTEGER 
DIM y_pos AS INTEGER 
DIM u_pos AS INTEGER 
x_pos = INSTR(input, "X")
y_pos = INSTR(input, "Y")
u_pos = INSTR(input, "U")' 截取数值部分 
DIM x_value AS STRING 
DIM y_value AS STRING 
DIM u_value AS STRING 
x_value = MID$(input, x_pos + 1, y_pos - x_pos - 1)
y_value = MID$(input, y_pos + 1, u_pos - y_pos - 1)
u_value = MID$(input, u_pos + 1, LEN(input) - u_pos - 3)' 转换为浮点数并保留三位小数 
DIM x_float AS SINGLE 
DIM y_float AS SINGLE 
DIM u_float AS SINGLE 
x_float = VAL(x_value)
y_float = VAL(y_value)
u_float = VAL(u_value)PRINT "X="; FORMAT$(x_float, "0.000")
PRINT "Y="; FORMAT$(y_float, "0.000")
PRINT "U="; FORMAT$(u_float, "0.000")

解释

  1. 首先定义输入字符串input
  2. 使用INSTR函数找到每个变量的位置。
  3. 使用MID$函数截取每个变量的数值部分。
  4. 使用VAL函数将字符串转换为浮点数。
  5. 使用FORMAT$函数将浮点数格式化为保留三位小数的字符串,并打印输出。

这样就可以在Basic语言中实现对数据的解析,并保留小数点后三位数。


http://www.ppmy.cn/news/1557263.html

相关文章

方正畅享全媒体新闻采编系统 reportCenter.do Sql注入漏洞复现(附脚本)

0x01 产品描述: 方正畅享全媒体新闻生产系统是以内容资产为核心的智能化融合媒体业务平台,融合了报、网、端、微、自媒体分发平台等全渠道内容。该平台由协调指挥调度、数据资源聚合、融合生产、全渠道发布、智能传播分析、融合考核等多个平台组成,贯穿新闻生产策、采、编、…

类似于GitHub的平台

当然有类似于GitHub的平台,这些平台提供了类似的代码托管、版本控制、协作开发等功能。以下是不少于20个的类似GitHub的平台: GitLab: 自托管的Git存储库管理工具,提供代码托管、版本控制、问题跟踪、CI/CD等功能。支持自建部署&a…

flask-admin的modelview 实现list列表视图中扩展修改状态按钮

背景: 在flask-admin的模型视图(modelview 及其子类)中如果不想重构UI视图,那么就不可避免的出现默认视图无法很好满足需求的情况,如默认视图中只有“新增”,“编辑”,“选中的”三个按钮。 材…

qt 鼠标点击事件

大概就这几种, 按左键右键 void QtWidgetsApplication7::mousePressEvent(QMouseEvent *event) {//如果是鼠标左键按下if (event->button() Qt::LeftButton) {QCursor cursor;cursor.setShape(Qt::ClosedHandCursor);QApplication::setOverrideCursor(cursor)…

springboot java ffmpeg 视频压缩、提取视频帧图片、获取视频分辨率

用到的maven依赖&#xff1a; lombok依赖就不贴出来了 <dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg-platform</artifactId><version>4.3.2-1.5.5</version></dependency><dependency><groupId&…

电脑除尘更换cpu和显卡硅脂过程及安装win11系统中遇到的问题

原由 电脑是2022款的显卡TRX3050ti 的Y7000p,在使用过程中发现电脑风扇声音很大&#xff0c;想来也是用很久没有清理过灰尘了&#xff0c;在拆卸视频中发现一个换硅脂的&#xff0c;刚好手头有&#xff0c;想来也没换过&#xff0c;所以就直接换了。但修完后直接打开却出现了无…

HarmonyOS(72)事件拦截处理详解

事件拦截 1、参考资料2、HitTestMode3、onTouchIntercept、onTouch、onClick事件执行顺序3.1、系统默认事件传递顺序3.2、子组件拦截事件1、参考资料 HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案HitTestModea…

Windows Server 2019 配置PHP环境(图文教程)

操作系统&#xff1a;Windows Server 2019运行模式&#xff1a;IIS10 fastcgi PHP(安装IIS的时候选择上CGI)软件版本&#xff1a;MySQL 5.7.37 解压版 / PHP 7.4.29 / PHP Manager 1.5.0 / phpMyAdmin 5.1.3 1、MySQL 5.7.37 解压版安装&#xff1a; 为什么我会选择解压版而不…