当前位置: 首页 > article >正文

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

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.kler.cn/a/447273.html

相关文章:

  • Elasticsearch:什么是提示工程 - prompt engineering?
  • SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频
  • 【Prompt Engineering】7 聊天机器人
  • 练习题 最小栈
  • 使用 datamodel-code-generator 从 MySQL 生成 Python 模型
  • Edge Scdn防御网站怎么样?
  • Type-C 接口电热毯:开启温暖智能新时代
  • SQLite数据库的介绍和使用
  • 前端知识图谱 - JavaScript基础(变量和类型)
  • git怎么将一个没使用过git的项目上传到某个仓库
  • [计算机网络]唐僧的”通关文牒“NAT地址转换
  • Java写URI网址唤醒APP小程序等NDEF信息
  • IP地址查询的背后②:IP地址(IPv4)的构成、类型以及子网划分
  • vscode的keil assistant 中搜索不到全局变量
  • RTOS之邮箱
  • JAVA学习-练习试用Java实现“使用Arrays.sort方法对整数数组进行排序”
  • SQL进阶技巧:如何计算商品需求与到货队列表进出计划?
  • 深度学习之超分辨率算法——SRGAN
  • 【ETCD】【源码阅读】深入分析 applierV3backend.Apply`方法源码
  • 设计模式之桥接模式:抽象与实现之间的分离艺术
  • C语言 排序
  • sqlite基础
  • 安卓native层抓trace
  • ASP.NET Core - 依赖注入 自动批量注入
  • gesp(三级)(8)洛谷:B3926:[GESP202312 三级] 单位转换
  • HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明